这是一个自用工具类函数库,目前只有下列功能,会不定期更新,欢迎 issue
方法列表
__Once
: 单次执行,页面加载后只能执行一次__Debounce
: 防抖函数__Throttle
: 节流函数__ToTree
: 构建树__MapToArray
: 映射数组__ArrayToMap
: 映射 map 字典Storage
: 本地储存类
函数参数和返回值(根据代码提示即可)
- 单次执行函数,页面加载后只能执行一次
- @param method {Function} 传入的函数
- @returns {Function} 返回函数
代码用例
import { __Once } from '@jsmini/util-tools'
var a = 0
var Fn = __Once(() => {
a = a + 1
})
Fn()
console.log(a) // 1
Fn()
console.log(a) // 1
- 防抖函数
- @param {Function} method 事件触发的操作,传入的函数
- @param {Number} [delay = 500] - 多少毫秒内连续触发事件,不会执行
- @returns {Function} - 返回包装之后的函数
代码用例
import { __Debounce } from '@jsmini/util-tools'
var a = 0
var Fn = __Debounce(() => {
a = a + 1
})
Fn()
console.log(a) // 0
setTimeout(() => {
console.log(a) // 1
}, 1000)
- 节流函数
- @param {Function} method 事件触发的操作,传入的函数
- @param {Number} [delay = 500] - 间隔多少毫秒需要触发一次事件
- @returns {Function} - 返回包装之后的函数
代码用例
import { __Throttle } from '@jsmini/util-tools'
var a = 0
var Fn = __Throttle(() => {
a = a + 1
})
let timer = setInterval(() => {
Fn()
}, 100)
setTimeout(() => {
clearInterval(timer)
console.log(a) // 3
}, 2000)
- 将 List 结构的对象数组转化为树形结构
- @param data {Array} 源数据
- @param parentIdKey {string} 关联节点名称
- @param idKey {string} 主键
- @returns {Array} 返回的树形结构数据
代码用例
import { __ToTree } from '@jsmini/util-tools' var list = [ { id: 0, name: '第一层', pid: -1 }, { id: 1, name: '第二层', pid: 0 }, { id: 2, name: '第三层', pid: 1 } ] var tree = __ToTree(list, 'pid') console.log(tree) /** * [{ * "id":0,"name":"第一层","pid":-1,"children":[{ * "id":1,"name":"第二层","pid":0,"children":[{ * "id":2,"name":"第三层","pid":1 * }] * }] * }] * * /
- 将 map 字典对象转化为 List
- @param {Object} map Map 对象
- @param {String} [key = name] 键名
- @param {String} [val = value] 键值
- @returns {Array} 返回数组
代码用例
import { __MapToArray } from '@jsmini/util-tools' var map = { Vue: 'version --alpha-next', React: 'hook 16.8', Angular: 'I do', } var list = __MapToArray(map) console.log(list) // [{"name":"Vue","value":"version --alpha-next"},{"name":"React","value":"hook 16.8"},{"name":"Angular","value":"I do"}]
- 将数组转化为字典对象类型
- @param {Array} array 数据
- @param {String} [key = name] 键名
- @param {String} [val = value] 键值
- @returns {Object} 返回 map 对象字典
代码用例
import { __MapToArray } from '@jsmini/util-tools' var list = [ { name: 'Vue', value: 'version --alpha-next' }, { name: 'React', value: 'hook 16.8' }, { name: 'Angular', value: 'I do' }, ] var map = __MapToArray(map) console.log(map) /* { Vue: 'version --alpha-next', React: 'hook 16.8', Angular: 'I do' } */
- 本地持久化储存实体类
- @param isSingleInstance {boolean} - true 是否单例模式
- @returns Storage 实例
代码用例
import { Storage } from '@jsmini/util-tools' let St = new Storage() console.log(St === new Storage()) // true var a = true var c = { name: 123, value: 'test' } St.set('a', a) // 单值模式 St.set(c) // 多值模式 St.get('a') // true | 单值模式 St.get(['a', 'name']) // {a: true, name: 123} | 多值模式 St.getAll() // {a: true, name: 123, value: 'test'} | 获取全部 St.remove('a') // 单值模式 St.remove(['a', 'name']) // 多值模式 St.removeAll() // 删除全部 St.destroyed() // 销毁当前实例
特殊说明
Storage
本地储存类支持Node
环境,但是需要添加第三方库以支持 Storage