Skip to content
This repository has been archived by the owner on Dec 15, 2021. It is now read-only.

Releases: MoomFE/ZenJS

3.3.9

13 Oct 01:13
Compare
Choose a tag to compare

新增

  1. 新增 Function.prototype.$after 方法, 可以使方法在被调用了若干次后才有用
  2. 新增 Function.prototype[ '$one', '$once' ] 方法, 可以使方法只能被调用一次

优化

  1. 事件分组新增主分组, 副分组功能 ( 3.3.1 )
    • 移除主分组时, 可移除旗下的副分组事件, 移除副分组不影响主分组其他事件
  2. 更新依赖库 dayjs 到 1.7.7 版本 ( 3.3.1 )
  3. 释放方法 Date.prototype[ '$valueof', '$unix' ] 用来返回 Unix 时间戳 ( 毫秒 / 秒 ) ( 3.3.1 )
  4. 新增 .stop .prevent 事件修饰符, 用于阻止事件传播和阻止浏览器默认事件 ( 3.3.3 )
  5. 新增一批按键事件修饰符: [ 'esc', 'tab', 'enter', 'space', 'up', 'left', 'right', 'down', 'delete' ] ( 3.3.8 )
  6. Element.prototype[ '$is', '$not' ] 支持传入方法进行判断 ( 3.3.5 )
  7. ZenJS.Event 新增 wheelDelta detail 的 polyfill, 现在两个属性都可以正常使用了 ( 3.3.6 )
  8. ZenJS.Event 的 wheelDelta detail 会返回相应的值, wheelDelta 返回 ±120, detail 返回 ±3 ( 3.3.7 )

修复

  1. 修复同时绑定多个事件时, handleOptions 错误的问题 ( 3.3.2 )
  2. 修复事件修饰符命名冲突的问题, 给所有的按键修饰符加上 key 前缀或 key 后缀 ( 3.3.9 )

其他

  1. 完善了 dayjs 相关文档 ( 3.3.1 )

3.2.2

26 Sep 04:04
Compare
Choose a tag to compare

新增

  1. 新增 Function.prototype.$args 方法, 可提前定义方法指定位数的参数

修复

  1. 修复在事件绑定时, 传入的 options 如果是 json, options 内的参数会被删除的问题 ( 3.2.1 )
  2. 修复使用 group 组移除事件时, 传入了不存在的组时报错的问题 ( 3.2.2 )

3.1.2

25 Sep 01:40
Compare
Choose a tag to compare

新增

  1. 新增 Date.$format 方法

重构

  1. 事件绑定方法 options 内可传入 data 数据, data 数据会保存在 handleOptions 内
  2. Array.prototype[ '$set', '$edit' ] 拆分为两个方法 ( 3.1.1 )
    1. Array.prototype.$set 可修改数组任意下标的值
    2. Array.prototype.$edit 只可修改数组已有范围内下标的值

修复

  1. 修复使用事件处理时, 某些情况因没有 this 而产生的错误
  2. 修复使用 $emit 触发事件时, event 是字符串而不是 Event 对象的问题

优化

  1. 优化工具方法 ZenJS.util.parametersRest ( 3.1.2 )

3.0.0

18 Sep 02:24
39d5d10
Compare
Choose a tag to compare

ZenJS 3.0.0 是一个重大更新, 所有方法都经历了重写, 主要是提升了程序的稳定性及使用的便利性 .
这里就对一些重要的更新做出提示.

新增

  1. 新增 Array.$each 方法, 和 Array.prototype.$each 方法行为一致.
  2. 新增 Array.prototype.$chunk 方法, 和 Array.$chunk 方法行为一致.
  3. 新增两个工具方法 isMap, isSet.
  4. 新增工具方法 mapSetToArray, 可以将 Map, Set 类型转为数组.
  5. 新增 Date.$parse 用于解析时间字符串
  6. 新增一系列操作时间对象的方法, 详情见文档.
  7. 新增 Array.prototype[ '$findLast', '$findIndexLast', '$findAll' ] 方法.

移除

  1. 移除 Object.$create 方法
  2. 移除 Math.$randomPlus 方法, 与 Math.$random 进行合并.
  3. 移除 Element.prototype.$selectText 方法

重构

  1. Object.$equals 支持更多类型的值比对, 包括 Map 及 Set 类型, 支持判断无限引用的对象.
  2. Array.$toArray 也支持将 Map 及 Set 类型转换为数组类型.
  3. Array.$equals 可用于与类数组的比较, 这点是 Object.$equals 做不到的.
  4. Object.$assign 支持多种无限引用对象的拦截处理.

2.3.1

04 Sep 08:43
Compare
Choose a tag to compare

新增

  1. Element.prototype[ '$remove', '$delete' ] 方法用于移除当前元素
  2. Element.prototype[ '$before', '$after' ] 方法用于添加元素到当前元素的前后
  3. Element.prototype[ '$append', '$prepend' ] 方法用于添加元素到当前元素的首位和末尾
  4. Element.prototype[ '$replaceWith', '$replace' ] 方法用于替换当前元素为一个新的元素
  5. Element.prototype.$id 方法是对 document.getElementById 的引用
  6. Element.prototype._nodeName 属性会返回小写的 nodeName
  7. Element.prototype._val 属性可对元素的 value 进行读写
  8. Element.prototype._html 属性可对元素的 innerHTML 进行读写
  9. Element.prototype[ '_width', '_height' ] 属性可对元素的宽高进行获取及设置
  10. document[ '$cookie', '$deleteCookie', '$removeCookie' ] 方法对 cookie 进行操作
  11. Array.prototype.$find 方法与 Array.prototype.$findIndex 类似, 但是返回的是对象本身
  12. Math[ '$plus', '$jia' ] 方法可进行加法运算, 解决了 JS 加法精度不准的问题
  13. Math[ '$minus', '$jian' ] 方法可进行减法运算, 解决了 JS 减法精度不准的问题
  14. Math[ '$multiply', '$cheng' ] 方法可进行乘法运算, 解决了 JS 乘法精度不准的问题
  15. Math[ '$divide', '$chu' ] 方法可进行除法运算, 解决了 JS 除法精度不准的问题

重构

  1. Array.prototype.$set 设置值的方式改为使用splice, 可以触发 Vue 的变量监听
  2. Stirng.prototype.$toCapitalize 支持传入参数以忽略对字符串非首位的小写操作

修复

  1. 修复触发事件时, 参数会一直累加的问题
  2. 修复在 NodeJS 环境中报错的问题 ( 2.3.1 )

其他

  1. 移除 Array.prototype.$indexOf 的命名, 将只使用 $findIndex 的命名
  2. [ 'Array', 'Object' ].prototype.$set 方法增加一个名字: $edit

2.2.0

09 Jul 03:57
Compare
Choose a tag to compare

新增

  1. Array.$chunk 用于将数组进行分割
  2. Array.prototype[ '$indexOf'. '$findIndex' ] 检测数组内对象的属性是否符合传入规则
  3. Array.prototype.$move 移动数组内元素的位置
  4. Array.prototype.$moveRange 批量移动数组内元素的位置
  5. Array.prototype.$concatTo 将传入参数使用 concat 的方式插入到指定位置
  6. Array.prototype.$set 之前使用时实际使用的是 Object.prototype.$set, 现在已添加实际方法, 以兼容负数 index

重构

  1. ZenJS.util 下的方法取消分级, 方法全部直接放到 ZenJS.util 下
  2. Array.prototype.$delete 新增第三个参数, 可返回删除的数据
  3. Array.prototype.$get 支持索引为负数

优化

  1. 优化 Array.$create 的性能
  2. 优化 Array.prototype.$copy 在纯复制时的性能
  3. 所有方法名为 delete* 的方法, 复制出一批方法名为 remove* 的方法

修复

  1. Array.prototype.$add 插入位置过小时的异常

其他

  1. 增加 slim 版本, 和普通版本相比, 移除了 DOM API, 以获得更小的体积

2.1.1

02 Jul 04:02
Compare
Choose a tag to compare

新增

  1. Element.prototype[ '$is', '$not' ] 用于查看选择的元素是否匹配选择器 ( 使用 CSS 选择器 )
  2. Element.prototype[ '$query', '$queryFirst' ] 是对于 [ 'querySelectorAll', 'querySelector' ] 的引用
  3. Element.prototype[ '$parent', '$parents' ] 向上查找父级元素 ( 可传入筛选条件 )
  4. Element.prototype[ '$next', '$nextAll' ] 获取元素后面的兄弟节点 ( 可传入筛选条件 )
  5. Element.prototype[ '$prev', '$prevAll' ] 获取元素前面的兄弟节点 ( 可传入筛选条件 )
  6. Element.prototype[ '$addClass', '$removeClass', '$hasClass', '$toggleClass' ] 用来操作元素节点的类
  7. Element.prototype[ '$child', '$children' ] 获取元素的子节点 ( 可传入筛选条件 )
  8. Element.prototype[ '$first', '$firstChild' ] 获取元素的首个子节点 ( 可传入筛选条件 )
  9. Element.prototype[ '$last', '$lastChild' ] 获取元素的最后子节点 ( 可传入筛选条件 )
  10. Element.prototype.$selectText 用于全选当前元素的文本
  11. Element.prototype._index 获取和设置元素下标
  12. Array.$toArray 将传入对象转为数组
  13. Array.$copy 将传入数组进行复制并返回
  14. Array.$isLikeArray 判断传入参数是否是类数组对象
  15. Array.prototype.$concat 使用原生 Array.prototype.concat 方法的方式向当前数组后插入新的数据
  16. document[ '$query', '$queryFirst' ] 是对于 [ 'querySelectorAll', 'querySelector' ] 的引用

重构

  1. ZenJS.Event.prototype.which polyfill
  2. Array.prototype.$add 的首个参数 index 支持负数
  3. Object.$assign 首个参数传入 true, 将使用浅拷贝
  4. EventTarget.prototype.$emit 可以向触发的回调传入参数
  5. 绑定事件时可传入命名空间修饰符以实现一些功能 , 目前支持的有 :
    1. [ '.one', '.once' ] 相同命名空间的事件只能绑定一次
    2. [ '.ctrl', '.shift', '.alt', '.meta' ] 按下对应键盘按键时再触发事件
    3. [ '.left', '.middle', '.right' ] 按下对应鼠标按键时再触发事件
  6. 绑定事件时可向 options 内传入 data 属性, data 将会在事件调起后绑定到 event.data 上
  7. 命名空间修饰符功能可通过 ZenJS.config.event.modifiers 配置项进行关闭及开启, 默认开启 ( 2.1.1 )

修复

  1. 修复 Object.$create 参数 isNoProto 为 true 时, 子数据依旧可能是有 prototype 的对象

优化

  1. Object.$each 增加错误处理, 使用更加安全
  2. 改善兼容性, 不再依赖 polyfill

2.0.10

08 Jun 09:17
Compare
Choose a tag to compare

新增

  1. Array.prototype.$equals 判断传入数组的内容是否和当前数组相同
  2. Object.prototype.$equals 判断两个对象的类型及两个对象的各个属性是否相同
  3. EventTarget.prototype.$data 存储数据 / 获取存储的数据
    EventTarget.prototype.$hasData 判断数据是否存在
    EventTarget.prototype.$deleteData 删除相关数据
  4. EventTarget.prototype.$on 事件绑定
    EventTarget.prototype.$one 事件绑定 ( 只运行一次 )
    EventTarget.prototype.$once 事件绑定 ( 只运行一次 )
    EventTarget.prototype.$off 事件移除
    EventTarget.prototype.$emit 触发绑定的事件

修复

  1. 细节修复 / 优化 ( 2.0.0 / 2.0.6 )
  2. 开启配置项的可枚举属性 ( 2.0.1 )
  3. 修复某些配置项未能启用的问题 ( 2.0.2 )
  4. 修复 $off 某些情况下参数处理错误 ( 2.0.3 )
  5. 修复 Event 对象在某些特别的事件下, 某些属性没有的问题 ( 2.0.4 )
  6. 移除 ZenJS.Event 原型上一些无用方法 ( 2.0.6 )
  7. 在非浏览器环境中, $typeof 方法不再写入 global 中 ( 2.0.7 )
  8. 修复 IE 下使用 Event 关闭事件无效而引发的错误 ( 2.0.8 )
  9. 修复使用 $emit 触发的事件内无法调用 preventDefault 等原生事件方法 ( 2.0.8 )
  10. 修复使用 $data 时而不使用 window.$data 引发的错误 ( 2.0.9 )
  11. 修复当绑定的事件返回 false 时, 阻止了浏览器默认行为及停止事件冒泡, 将此特性添加到配置项: ZenJS.config.event.returnFalse, 默认关闭此功能以和浏览器默认行为保持一致 ( 2.0.10 )

其他

  1. 构建时新增符合 CommonJS 和 ES Modul 模块化规范的文件 ( 2.0.5 )
  2. 支持非浏览器环境 ( 2.0.5 )

1.1.1

25 May 04:03
Compare
Choose a tag to compare

新增

将内部使用的一些方法共享到 ZenJS.util 中

修复

  1. 修复 String.$someRandom( num, true, true ) 时, 返回字符串位数不正确的问题
  2. 修复 Array.prototype.$get 范围取值错误的问题
  3. 细节修复

其他

上传至npm

1.0.1

23 May 06:12
Compare
Choose a tag to compare

更详细的使用方法及介绍请参照 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