@bugfix2019/utils
v1.4.1
Published
基于typescript4+ 编写的工具包
Downloads
22
Readme
基于typescript4+ 编写的工具包
@author bugfix2019
@email [email protected]
@date 2021-07-19 14:05:31
前言
工具包基本上都是平时工作中用到的 抽空封装起来
测试是在 React17 & Ts4 & Chrome 环境中进行的
因为是打工仔 更新速度不会太快 欢迎各位大佬加入共同编写
如果在使用中有意见和建议或遇到bug 可以直接发邮件 一般会在当天晚上查看
特别鸣谢:京东大佬 @fankai16 的技术支持!
兼容性说明
- 使用CommonJS规范 仅支持在node环境下使用
- 最低兼容至IE8
更新日志
下一版本预计更新
- 此包暂时不会有批量的更新了 下面要进行公司通用组件、axios的一些扩展、以及中后台的开发
- 如果有bug还是要修复的 2021年08月25日18:54:26 by bugfix2019
- 悄悄更新一波实用小工具 应该没有人会发现吧~ 2021年08月31日12:54:37 by bugfix2019
2021-11-09
- 新增 (setStorage) 设置本地储存的方法
- 新增 (getStorage) 获取本地储存的方法
- 新增 (setStorageForRedux) 设置本地储存(pro版本)的方法
- 新增 (getStorageForRedux) 获取本地储存(pro版本)的方法
2021-08-31
- 新增 (qrcode) 生成二维码(base64图片)的方法
- 新增 (downloadFile) 下载文件的方法
- 新增 (base64ToBlob) base64转blob的方法
- 新增 (clipboard) 点击元素复制内容(剪切板)的方法
- 新增 (encryption) 对数据进行MD5,AES加密的方法
- 新增 (decryption) 对数据进行AES解密的方法
2021-08-25
- 新增 (toFixed) 保留小数点后N位的方法
- 新增 (batchReplace) 批量替换多个字符串的方法
- 新增 (recursiveFindKey) 在object中查找需要匹配的key 并执行custom callback的方法
- 新增 (treeStructure) 将数据转换为树形结构的方法 支持无限级 并增加了custom callback 可以传入recursiveFindKey 配合使用
- 新增 (timeGap) 计算时间差的方法 例如「法外狂徒张三于xx分钟前评论」
- 新增 (bus) 事件总成 订阅/发布相关的方法
- 新增 ($on) 订阅事件的语法糖 用法同Vue.$on
- 新增 ($once)只订阅一次事件的语法糖 用法同Vue.$once
- 新增 ($emit) 发布事件的语法糖 用法同Vue.$emit
2021-08-11
- 修复 typescript 4.3.5 中 (debounce) 防抖函数 未按预期返回 NodeJS.Timeout 的异常 同时调换了入参await和callback的位置 同时增加了await的默认时长为300ms
- 更新 (throttle) 节流函数 调换了入参await和callback的位置 同时增加了await的默认时长为300ms
- 更新 (toggleClass) 自动添加&移除class只针对class字符串做处理 不再支持直接传入元素 详情见方法@example
- 新增 (getType) 获取数据类型的方法
- 新增 (deepDiff) 对数据进行深度对比的方法
- 新增 (shallowDiff) 对数据进行浅度对比的方法
- 新增 (deepClone) 对数据进行深度拷贝的方法
- 新增 (isArray) 检测数据是否为数组的方法
- 新增 (isFunction) 检测数据是否为函数的方法
- 新增 (isInt) 检测数据是否为整数的方法
- 新增 (isNumber) 检测数据是否为数字的方法
- 新增 (isString) 检测数据是否为字符串的方法
- 新增 (isObject) 检测数据是否为对象的方法
- 新增 (isUndefined) 检测数据是否为undefined的方法
- 新增 (isSymbol) 检测数据是否为Symbol的方法
- 新增 (isMap) 检测数据是否为Map的方法
- 新增 (isSet) 检测数据是否为Set的方法
- 新增 (isBoolean) 检测数据是否为布尔值的方法
- 新增 (isEmptyArray) 检测数据是否为空数组的方法
- 新增 (isEmptyObject) 检测数据是否为空对象的方法
- 新增 (forceToBoolean) 将数据强制转换为布尔值的方法
- 新增 (hasOwnProperty) 使用原型方法检测对象上是否存在某属性的方法
方法列表(暂无文档 可以查看方法中的@example)
数据操作相关
- 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+
性能优化相关
- debounce 防抖函数 v1.0.0+ Fix#
- throttle 节流函数 v1.0.0+ Fix#
本地存储相关
- 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~
其他小工具
- 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
)
)