This repository has been archived by the owner on Dec 15, 2021. It is now read-only.
Releases: MoomFE/ZenJS
Releases · MoomFE/ZenJS
3.3.9
新增
- 新增 Function.prototype.$after 方法, 可以使方法在被调用了若干次后才有用
- 新增 Function.prototype[ '$one', '$once' ] 方法, 可以使方法只能被调用一次
优化
- 事件分组新增主分组, 副分组功能 ( 3.3.1 )
- 移除主分组时, 可移除旗下的副分组事件, 移除副分组不影响主分组其他事件
- 更新依赖库 dayjs 到 1.7.7 版本 ( 3.3.1 )
- 释放方法 Date.prototype[ '$valueof', '$unix' ] 用来返回 Unix 时间戳 ( 毫秒 / 秒 ) ( 3.3.1 )
- 新增 .stop .prevent 事件修饰符, 用于阻止事件传播和阻止浏览器默认事件 ( 3.3.3 )
- 新增一批按键事件修饰符: [ 'esc', 'tab', 'enter', 'space', 'up', 'left', 'right', 'down', 'delete' ] ( 3.3.8 )
- Element.prototype[ '$is', '$not' ] 支持传入方法进行判断 ( 3.3.5 )
- ZenJS.Event 新增 wheelDelta detail 的 polyfill, 现在两个属性都可以正常使用了 ( 3.3.6 )
- ZenJS.Event 的 wheelDelta detail 会返回相应的值, wheelDelta 返回 ±120, detail 返回 ±3 ( 3.3.7 )
修复
- 修复同时绑定多个事件时, handleOptions 错误的问题 ( 3.3.2 )
- 修复事件修饰符命名冲突的问题, 给所有的按键修饰符加上 key 前缀或 key 后缀 ( 3.3.9 )
其他
- 完善了 dayjs 相关文档 ( 3.3.1 )
3.2.2
新增
- 新增 Function.prototype.$args 方法, 可提前定义方法指定位数的参数
修复
- 修复在事件绑定时, 传入的 options 如果是 json, options 内的参数会被删除的问题 ( 3.2.1 )
- 修复使用 group 组移除事件时, 传入了不存在的组时报错的问题 ( 3.2.2 )
3.1.2
新增
- 新增 Date.$format 方法
重构
- 事件绑定方法 options 内可传入 data 数据, data 数据会保存在 handleOptions 内
- Array.prototype[ '$set', '$edit' ] 拆分为两个方法 ( 3.1.1 )
- Array.prototype.$set 可修改数组任意下标的值
- Array.prototype.$edit 只可修改数组已有范围内下标的值
修复
- 修复使用事件处理时, 某些情况因没有 this 而产生的错误
- 修复使用 $emit 触发事件时, event 是字符串而不是 Event 对象的问题
优化
- 优化工具方法 ZenJS.util.parametersRest ( 3.1.2 )
3.0.0
ZenJS 3.0.0
是一个重大更新, 所有方法都经历了重写, 主要是提升了程序的稳定性及使用的便利性 .
这里就对一些重要的更新做出提示.
新增
- 新增 Array.$each 方法, 和 Array.prototype.$each 方法行为一致.
- 新增 Array.prototype.$chunk 方法, 和 Array.$chunk 方法行为一致.
- 新增两个工具方法 isMap, isSet.
- 新增工具方法 mapSetToArray, 可以将 Map, Set 类型转为数组.
- 新增 Date.$parse 用于解析时间字符串
- 新增一系列操作时间对象的方法, 详情见文档.
- 新增 Array.prototype[ '$findLast', '$findIndexLast', '$findAll' ] 方法.
移除
- 移除 Object.$create 方法
- 移除 Math.$randomPlus 方法, 与 Math.$random 进行合并.
- 移除 Element.prototype.$selectText 方法
重构
- Object.$equals 支持更多类型的值比对, 包括 Map 及 Set 类型, 支持判断无限引用的对象.
- Array.$toArray 也支持将 Map 及 Set 类型转换为数组类型.
- Array.$equals 可用于与类数组的比较, 这点是 Object.$equals 做不到的.
- Object.$assign 支持多种无限引用对象的拦截处理.
2.3.1
新增
- Element.prototype[ '$remove', '$delete' ] 方法用于移除当前元素
- Element.prototype[ '$before', '$after' ] 方法用于添加元素到当前元素的前后
- Element.prototype[ '$append', '$prepend' ] 方法用于添加元素到当前元素的首位和末尾
- Element.prototype[ '$replaceWith', '$replace' ] 方法用于替换当前元素为一个新的元素
- Element.prototype.$id 方法是对 document.getElementById 的引用
- Element.prototype._nodeName 属性会返回小写的 nodeName
- Element.prototype._val 属性可对元素的 value 进行读写
- Element.prototype._html 属性可对元素的 innerHTML 进行读写
- Element.prototype[ '_width', '_height' ] 属性可对元素的宽高进行获取及设置
- document[ '$cookie', '$deleteCookie', '$removeCookie' ] 方法对 cookie 进行操作
- Array.prototype.$find 方法与 Array.prototype.$findIndex 类似, 但是返回的是对象本身
- Math[ '$plus', '$jia' ] 方法可进行加法运算, 解决了 JS 加法精度不准的问题
- Math[ '$minus', '$jian' ] 方法可进行减法运算, 解决了 JS 减法精度不准的问题
- Math[ '$multiply', '$cheng' ] 方法可进行乘法运算, 解决了 JS 乘法精度不准的问题
- Math[ '$divide', '$chu' ] 方法可进行除法运算, 解决了 JS 除法精度不准的问题
重构
- Array.prototype.$set 设置值的方式改为使用splice, 可以触发 Vue 的变量监听
- Stirng.prototype.$toCapitalize 支持传入参数以忽略对字符串非首位的小写操作
修复
- 修复触发事件时, 参数会一直累加的问题
- 修复在 NodeJS 环境中报错的问题 ( 2.3.1 )
其他
- 移除 Array.prototype.$indexOf 的命名, 将只使用 $findIndex 的命名
- [ 'Array', 'Object' ].prototype.$set 方法增加一个名字: $edit
2.2.0
新增
- Array.$chunk 用于将数组进行分割
- Array.prototype[ '$indexOf'. '$findIndex' ] 检测数组内对象的属性是否符合传入规则
- Array.prototype.$move 移动数组内元素的位置
- Array.prototype.$moveRange 批量移动数组内元素的位置
- Array.prototype.$concatTo 将传入参数使用 concat 的方式插入到指定位置
- Array.prototype.$set 之前使用时实际使用的是 Object.prototype.$set, 现在已添加实际方法, 以兼容负数 index
重构
- ZenJS.util 下的方法取消分级, 方法全部直接放到 ZenJS.util 下
- Array.prototype.$delete 新增第三个参数, 可返回删除的数据
- Array.prototype.$get 支持索引为负数
优化
- 优化 Array.$create 的性能
- 优化 Array.prototype.$copy 在纯复制时的性能
- 所有方法名为 delete* 的方法, 复制出一批方法名为 remove* 的方法
修复
- Array.prototype.$add 插入位置过小时的异常
其他
- 增加 slim 版本, 和普通版本相比, 移除了 DOM API, 以获得更小的体积
2.1.1
新增
- Element.prototype[ '$is', '$not' ] 用于查看选择的元素是否匹配选择器 ( 使用 CSS 选择器 )
- Element.prototype[ '$query', '$queryFirst' ] 是对于 [ 'querySelectorAll', 'querySelector' ] 的引用
- Element.prototype[ '$parent', '$parents' ] 向上查找父级元素 ( 可传入筛选条件 )
- Element.prototype[ '$next', '$nextAll' ] 获取元素后面的兄弟节点 ( 可传入筛选条件 )
- Element.prototype[ '$prev', '$prevAll' ] 获取元素前面的兄弟节点 ( 可传入筛选条件 )
- Element.prototype[ '$addClass', '$removeClass', '$hasClass', '$toggleClass' ] 用来操作元素节点的类
- Element.prototype[ '$child', '$children' ] 获取元素的子节点 ( 可传入筛选条件 )
- Element.prototype[ '$first', '$firstChild' ] 获取元素的首个子节点 ( 可传入筛选条件 )
- Element.prototype[ '$last', '$lastChild' ] 获取元素的最后子节点 ( 可传入筛选条件 )
- Element.prototype.$selectText 用于全选当前元素的文本
- Element.prototype._index 获取和设置元素下标
- Array.$toArray 将传入对象转为数组
- Array.$copy 将传入数组进行复制并返回
- Array.$isLikeArray 判断传入参数是否是类数组对象
- Array.prototype.$concat 使用原生 Array.prototype.concat 方法的方式向当前数组后插入新的数据
- document[ '$query', '$queryFirst' ] 是对于 [ 'querySelectorAll', 'querySelector' ] 的引用
重构
- ZenJS.Event.prototype.which polyfill
- Array.prototype.$add 的首个参数 index 支持负数
- Object.$assign 首个参数传入 true, 将使用浅拷贝
- EventTarget.prototype.$emit 可以向触发的回调传入参数
- 绑定事件时可传入命名空间修饰符以实现一些功能 , 目前支持的有 :
- [ '.one', '.once' ] 相同命名空间的事件只能绑定一次
- [ '.ctrl', '.shift', '.alt', '.meta' ] 按下对应键盘按键时再触发事件
- [ '.left', '.middle', '.right' ] 按下对应鼠标按键时再触发事件
- 绑定事件时可向 options 内传入 data 属性, data 将会在事件调起后绑定到 event.data 上
- 命名空间修饰符功能可通过 ZenJS.config.event.modifiers 配置项进行关闭及开启, 默认开启 ( 2.1.1 )
修复
- 修复 Object.$create 参数 isNoProto 为 true 时, 子数据依旧可能是有 prototype 的对象
优化
- Object.$each 增加错误处理, 使用更加安全
- 改善兼容性, 不再依赖 polyfill
2.0.10
新增
- Array.prototype.$equals 判断传入数组的内容是否和当前数组相同
- Object.prototype.$equals 判断两个对象的类型及两个对象的各个属性是否相同
- EventTarget.prototype.$data 存储数据 / 获取存储的数据
EventTarget.prototype.$hasData 判断数据是否存在
EventTarget.prototype.$deleteData 删除相关数据 - EventTarget.prototype.$on 事件绑定
EventTarget.prototype.$one 事件绑定 ( 只运行一次 )
EventTarget.prototype.$once 事件绑定 ( 只运行一次 )
EventTarget.prototype.$off 事件移除
EventTarget.prototype.$emit 触发绑定的事件
修复
- 细节修复 / 优化 ( 2.0.0 / 2.0.6 )
- 开启配置项的可枚举属性 ( 2.0.1 )
- 修复某些配置项未能启用的问题 ( 2.0.2 )
- 修复 $off 某些情况下参数处理错误 ( 2.0.3 )
- 修复 Event 对象在某些特别的事件下, 某些属性没有的问题 ( 2.0.4 )
- 移除 ZenJS.Event 原型上一些无用方法 ( 2.0.6 )
- 在非浏览器环境中, $typeof 方法不再写入 global 中 ( 2.0.7 )
- 修复 IE 下使用 Event 关闭事件无效而引发的错误 ( 2.0.8 )
- 修复使用 $emit 触发的事件内无法调用 preventDefault 等原生事件方法 ( 2.0.8 )
- 修复使用 $data 时而不使用 window.$data 引发的错误 ( 2.0.9 )
- 修复当绑定的事件返回 false 时, 阻止了浏览器默认行为及停止事件冒泡, 将此特性添加到配置项: ZenJS.config.event.returnFalse, 默认关闭此功能以和浏览器默认行为保持一致 ( 2.0.10 )
其他
- 构建时新增符合 CommonJS 和 ES Modul 模块化规范的文件 ( 2.0.5 )
- 支持非浏览器环境 ( 2.0.5 )
1.1.1
新增
将内部使用的一些方法共享到 ZenJS.util 中
修复
- 修复 String.$someRandom( num, true, true ) 时, 返回字符串位数不正确的问题
- 修复 Array.prototype.$get 范围取值错误的问题
- 细节修复
其他
上传至npm
1.0.1
更详细的使用方法及介绍请参照 index.d.ts
-
Array
- $create
- $add
- $delete
- $deleteValue
- $get
- $inArray
- $set
- $push
- $unshift
- $pop
- $shift
-
document
- $ready
-
Math
- $mean
- $random
- $randomPlus
-
Number
- $isNumber
-
Object
- $assign
- $create
- $each
- $isEmptyObject
- $isPlainObject
-
Object.prototype
- $delete
- $deleteValue
- $get
- $set
- $self
- self
-
String
- $random
- $someRandom
-
String.prototype
- $toCapitalize
- $replaceAll
-
window
- $ready
- $typeof
- $querystring.stringify
- $querystring.parse