1.4.1 • Published 2 years ago

@bugfix2019/utils v1.4.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

基于typescript4+ 编写的工具包

@author bugfix2019
@email ts02315607@163.com
@date 2021-07-19 14:05:31

前言

工具包基本上都是平时工作中用到的 抽空封装起来
测试是在 React17 & Ts4 & Chrome 环境中进行的
因为是打工仔 更新速度不会太快 欢迎各位大佬加入共同编写
如果在使用中有意见和建议或遇到bug 可以直接发邮件 一般会在当天晚上查看

特别鸣谢:京东大佬 @fankai16 的技术支持!

兼容性说明

  1. 使用CommonJS规范 仅支持在node环境下使用
  2. 最低兼容至IE8

更新日志

下一版本预计更新

  1. 此包暂时不会有批量的更新了 下面要进行公司通用组件、axios的一些扩展、以及中后台的开发
  2. 如果有bug还是要修复的 2021年08月25日18:54:26 by bugfix2019
  3. 悄悄更新一波实用小工具 应该没有人会发现吧~ 2021年08月31日12:54:37 by bugfix2019

2021-11-09

  1. 新增 (setStorage) 设置本地储存的方法
  2. 新增 (getStorage) 获取本地储存的方法
  3. 新增 (setStorageForRedux) 设置本地储存(pro版本)的方法
  4. 新增 (getStorageForRedux) 获取本地储存(pro版本)的方法

2021-08-31

  1. 新增 (qrcode) 生成二维码(base64图片)的方法
  2. 新增 (downloadFile) 下载文件的方法
  3. 新增 (base64ToBlob) base64转blob的方法
  4. 新增 (clipboard) 点击元素复制内容(剪切板)的方法
  5. 新增 (encryption) 对数据进行MD5,AES加密的方法
  6. 新增 (decryption) 对数据进行AES解密的方法

2021-08-25

  1. 新增 (toFixed) 保留小数点后N位的方法
  2. 新增 (batchReplace) 批量替换多个字符串的方法
  3. 新增 (recursiveFindKey) 在object中查找需要匹配的key 并执行custom callback的方法
  4. 新增 (treeStructure) 将数据转换为树形结构的方法 支持无限级 并增加了custom callback 可以传入recursiveFindKey 配合使用
  5. 新增 (timeGap) 计算时间差的方法 例如「法外狂徒张三于xx分钟前评论」
  6. 新增 (bus) 事件总成 订阅/发布相关的方法
  7. 新增 ($on) 订阅事件的语法糖 用法同Vue.\$on
  8. 新增 ($once)只订阅一次事件的语法糖 用法同Vue.\$once
  9. 新增 ($emit) 发布事件的语法糖 用法同Vue.\$emit

2021-08-11

  1. 修复 typescript 4.3.5 中 (debounce) 防抖函数 未按预期返回 NodeJS.Timeout 的异常 同时调换了入参await和callback的位置 同时增加了await的默认时长为300ms
  2. 更新 (throttle) 节流函数 调换了入参await和callback的位置 同时增加了await的默认时长为300ms
  3. 更新 (toggleClass) 自动添加&移除class只针对class字符串做处理 不再支持直接传入元素 详情见方法@example
  4. 新增 (getType) 获取数据类型的方法
  5. 新增 (deepDiff) 对数据进行深度对比的方法
  6. 新增 (shallowDiff) 对数据进行浅度对比的方法
  7. 新增 (deepClone) 对数据进行深度拷贝的方法
  8. 新增 (isArray) 检测数据是否为数组的方法
  9. 新增 (isFunction) 检测数据是否为函数的方法
  10. 新增 (isInt) 检测数据是否为整数的方法
  11. 新增 (isNumber) 检测数据是否为数字的方法
  12. 新增 (isString) 检测数据是否为字符串的方法
  13. 新增 (isObject) 检测数据是否为对象的方法
  14. 新增 (isUndefined) 检测数据是否为undefined的方法
  15. 新增 (isSymbol) 检测数据是否为Symbol的方法
  16. 新增 (isMap) 检测数据是否为Map的方法
  17. 新增 (isSet) 检测数据是否为Set的方法
  18. 新增 (isBoolean) 检测数据是否为布尔值的方法
  19. 新增 (isEmptyArray) 检测数据是否为空数组的方法
  20. 新增 (isEmptyObject) 检测数据是否为空对象的方法
  21. 新增 (forceToBoolean) 将数据强制转换为布尔值的方法
  22. 新增 (hasOwnProperty) 使用原型方法检测对象上是否存在某属性的方法

方法列表(暂无文档 可以查看方法中的@example)

  1. 数据操作相关

    • toggleClass 自动添加&移除class v1.0.0+
    • getType 获取数据类型 v1.1.0+
    • deepDiff 对数据进行深度对比 v1.1.0+
    • deepClone 对数据进行深度拷贝 v1.1.0+
    • isArray 检测数据是否为数组 v1.1.0+
    • isFunction 检测数据是否为函数 v1.1.0+
    • isInt 检测数据是否为整数 v1.1.0+
    • isNumber 检测数据是否为数字 v1.1.0+
    • isString 检测数据是否为字符串 v1.1.0+
    • isObject 检测数据是否为对象 v1.1.0+
    • isUndefined 检测数据是否为undefined v1.1.0+
    • isSymbol 检测数据是否为Symbol v1.1.0+
    • isMap 检测数据是否为Map v1.1.0+
    • isSet 检测数据是否为Set v1.1.0+
    • isBoolean 检测数据是否为布尔值 v1.1.0+
    • isEmptyArray 检测数据是否为空数组 v1.1.0+
    • isEmptyObject 检测数据是否为空对象 v1.1.0+
    • forceToBoolean 将数据强制转换为布尔值 v1.1.0+
    • hasOwnProperty 使用原型方法检测对象上是否存在某属性 v1.1.0+
    • toFixed 保留小数点后N位 v1.2.0+
    • batchReplace 批量替换多个字符串 v1.2.0+
    • recursiveFindKey 查找需要匹配的key 并执行传递进来的callback v1.2.0+
    • treeStructure 将数据转换为树形结构 v1.2.0+
  2. 性能优化相关

    • debounce 防抖函数 v1.0.0+ Fix#
    • throttle 节流函数 v1.0.0+ Fix#
  1. 本地存储相关

    • setStorage 设置本地存储 (同localStorage) v1.4.0+ New~
    • getStorage 获取本地存储 (同localStorage 支持设置默认值) v1.4.0+ New~
    • setStorageForRedux setStorage的升级版本 (自动序列化value 加密后存入localStorage 支持多模块) v1.4.0+ New~
    • getStorageForRedux getStorage的升级版本 (自动反序列化value 自动解密 支持多模块 支持设置默认值) v1.4.0+ New~
  2. 其他小工具

    • timeGap 计算时间差 评论于xx分钟前 v1.2.0+
    • bus 事件总成 订阅/发布相关 v1.2.0+
    • $on 订阅事件的语法糖 v1.2.0+
    • $once 只订阅一次事件的语法糖 v1.2.0+
    • $emit 发布事件的语法糖 v1.2.0+
    • qrcode 生成二维码 该方法返回二维码的Base64 v1.3.0+
    • downloadFile 通过Blob下载文件 v1.3.0+
    • base64ToBlob 将base64转换为Blob对象 可配合qrcode及downloadFile使用 v1.3.0+
    • clipboard 点击传入的元素时进行特定内容的复制(剪切板) v1.3.0+
    • encryption 对数据进行MD5,AES加密(也支持其他模式的解密 但未封装))v1.3.0+
    • decryption 对数据进行AES解密 (也支持其他模式的解密 但未封装)v1.3.0+
    • smsCountDown 发送短信倒计时 已关闭

      原因是因为其涉及到dom的操作

    • pullToRefresh 下拉刷新 已关闭

      原因是因为其涉及到dom的操作

使用文档

// debounce的使用方法 此处仅做演示 后期会移植到github pages
document.addEventListener(
    debounce(
        e=> console.log(e.currentTarget.value),
        1000
    )
)
1.4.1

2 years ago

1.4.0

2 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago