防抖函数,常用于按钮点击,防止短时间内多次点击
多次调用小于 wait
值,就会被转化为一次调用
被包装的函数
间隔 wait
值
是否立即执行
被包装的函数
import { debounce } from 'jevon-utils'
const log = (text) => {
console.log(text)
}
const logger = debounce(log, 2000, true)
logger('hello1')
logger('hello2')
对一个对象进行深拷贝
对象类型的参数
生成对象的拷贝
import { deepClone } from 'jevon-utils'
const obj = {
name: 'tom',
children: [1, 2, 3, 4]
}
const cloneObj = deepClone(obj)
将CSV字符串生成文件并下载
CSV字符串
数组降维
数组
前端构造数据并下载为CSV文件
生成的CSV表头
生成的CSV的内容体
无返回值
import { frontEndDownloadCsv } from 'jevon-utils'
const header = ['ID','name']
const content = [['1','lemon'],['2','lara']
frontEndDownloadCsv(header, content)
// 会将内容生成`csv`下载到
生成随机颜色
颜色值
import { genRandomColor } from 'jevon-utils'
genRandomColor() // #720f32
生成随机头像 [注意:这个方法只能用于浏览器环境]
生成头像大小,例如:[90, 90]
头像中的字符,如果是字符串默认取最后一个字符
生成头像的base64
字符串
import { genRandomHeader } from 'jevon-utils'
const image = genRandomHeader([90, 90], '李')
console.log(image)
// "data:image/jpeg;base64,/9j......jGOMY4xjjGOMZ/9k="
生成在指定范围内[min, max]的随机值
最小值
最大值
随机值
import { genRandomNum } from 'jevon-utils'
genRandomNum(2, 6) // 3
生成唯一字符串 UUID
生成的唯一字符串
import { genRandomUUID } from 'jevon-utils'
const uuid = genRandomUUID()
console.log(uuid)
// 44e7cfca-11aa-4dbf-9f24-a1371468e6b5
获取Cookie,注意只能用于浏览器环境
cookie的名称
具体name
对应的cookie值
import { getCookie } from 'jevon-utils'
const name = getCookie('name')
console.log(name) // test
获取URL中的参数
参数key
传递的URL,如果为空则取 window.location.href
返回key
对应的值
import { getParamByName } from 'jevon-utils'
const url = 'www.baidu.com?c=aa'
getParamByName('c') // => 'aa'
将IP地址转化一个Number类型的数字
IP 地址
给某些CSS样式加浏览器前缀 适用范围:js给某些DOM添加动画
CSS样式
加了浏览器前缀的CSS样式
// 加了合适前缀的CSS属性
const TRANSFORM = prefixStyle('transform')
// ===> webkitTranform
// 使用该CSS属性
this.$refs.image.style[TRANSFORM] = `scale(${scale})`
将 byte 数据转化为不同单位的值
字节值
带单位的字符串
import { readablizeBytes } from 'jevon-utils'
let val = readablizeBytes(1024) // 1024字节
console.log(val) // 1.00KB
val = readablizeBytes(10240 * 1000) // 1024字节
console.log(val) // 9.77MB
val = readablizeBytes(10240 * 1000 * 1000) // 1024字节
console.log(val) // 9.54GB
删除一个cookie
cookie的key
无返回值
import { removeCookie } from 'jevon-utils'
// 删除cookie
removeCookie('name')
平滑滚动到页面顶部
无返回值
import { scrollToTop } from 'jevon-utils'
scrollToTop() // 平滑回到页面顶部
设置cookie,注意只能用于浏览器环境
cookie名称
cookie值
过期时长,单位:天
无返回值
import { setCookie } from 'jevon-utils'
// 设置key为name的cookie,过期时长为7天
setCookie('name', 'test', 7)
对输入的数据(数组)进行分片执行 适用范围,接口对请求的数据有长度限制
数据源(会被切分传递给 promiseFunc
去执行)
分片长度(传递给 promiseFunc
的数据长度)
执行间隔(执行一次 promiseFunc
的时间间隔)
执行函数
每次执行的结果(结果,剩余长度)
加了千分符的字符串(可包含小数位)
节流函数,适用场景,文本框输入变化,发起异步请求,对请求的间隔进行限制
多次执行,转化为每隔 wait
时间调用一次
被包装的函数
间隔 wait
值
是否立即执行
返回被包装的函数
import { throttle } from 'jevon-utils'
const log = (text) => {
console.log(text)
}
const logger = throttle(log, 2000, true)
logger('hello1')
logger('hello2')
// 只有 hello1 被输出
用于比较两个版本号
结果为 1
: 新版本 大于 旧版本
结果为 0
: 版本号一致
结果为 -1
: 旧版本 大于 新版本
旧版本号
新版本号
import { versionStringCompare } from 'jevon-utils'
versionStringCompare('1.1.2', '1.1.4') === 1
versionStringCompare('1.1.2', '1.1.2') === 0
versionStringCompare('1.1.2', '1.1.0') === -1
封装操作 localStorage 的 api get、set、has、getAll等
得到合适的浏览器前缀,例如:webkit、ms