Options
All
  • Public
  • Public/Protected
  • All
Menu

jevon-utils

Index

Variables

Const vendor

vendor: string | false = (() => {const elementStyle = document.createElement('div').stylelet transformNames = {webkit: 'webkitTransform',Moz: 'MozTransform',O: 'OTransform',ms: 'msTransform',standard: 'transform'}for (const key in transformNames) {const support = elementStyle[transformNames[key]] !== undefinedif (support) {return key}}return false})()

得到合适的浏览器前缀,例如:webkit、ms

Functions

Const debounce

  • debounce(func: Function, wait: number, immediate: boolean): Function
  • 防抖函数,常用于按钮点击,防止短时间内多次点击 多次调用小于 wait 值,就会被转化为一次调用

    Parameters

    • func: Function

      被包装的函数

    • wait: number

      间隔 wait

    • immediate: boolean

      是否立即执行

    Returns Function

    被包装的函数

    import { debounce } from 'jevon-utils'
    
    const log = (text) => {
      console.log(text)
    }
    
    const logger = debounce(log, 2000, true)
    
    logger('hello1')
    logger('hello2')
    

deepClone

  • deepClone(obj: object): object
  • 对一个对象进行深拷贝

    Parameters

    • obj: object

      对象类型的参数

    Returns object

    生成对象的拷贝

    import { deepClone } from 'jevon-utils'
    
    const obj = {
      name: 'tom',
      children: [1, 2, 3, 4]
    }
    
    const cloneObj = deepClone(obj)

Const downLoadHelper

  • downLoadHelper(response: string): void

Const flattenDeep

  • flattenDeep(arr: any[] | any): any
  • 数组降维

    Parameters

    • arr: any[] | any

      数组

    Returns any

Const frontEndDownloadCsv

  • frontEndDownloadCsv(header: Array<string>, content: Array<Array<any>>): void
  • 前端构造数据并下载为CSV文件

    Parameters

    • header: Array<string>

      生成的CSV表头

    • content: Array<Array<any>>

      生成的CSV的内容体

    Returns void

    无返回值

    import { frontEndDownloadCsv } from 'jevon-utils'
    
    const header = ['ID','name']
    const content = [['1','lemon'],['2','lara']
    frontEndDownloadCsv(header, content)
    // 会将内容生成`csv`下载到

Const genRandomColor

  • genRandomColor(): string
  • 生成随机颜色

    Returns string

    颜色值

    import { genRandomColor } from 'jevon-utils'
    
    genRandomColor() // #720f32

Const genRandomHeader

  • genRandomHeader(size: any, s: string): string
  • 生成随机头像 [注意:这个方法只能用于浏览器环境]

    Parameters

    • size: any

      生成头像大小,例如:[90, 90]

    • s: string

      头像中的字符,如果是字符串默认取最后一个字符

    Returns string

    生成头像的base64字符串

    import { genRandomHeader } from 'jevon-utils'
    
    const image = genRandomHeader([90, 90], '李')
    console.log(image)
    // "data:image/jpeg;base64,/9j......jGOMY4xjjGOMZ/9k="

Const genRandomNum

  • genRandomNum(min: number, max: number): number
  • 生成在指定范围内[min, max]的随机值

    Parameters

    • min: number

      最小值

    • max: number

      最大值

    Returns number

    随机值

    import { genRandomNum } from 'jevon-utils'
    
    genRandomNum(2, 6) // 3

Const genRandomUUID

  • genRandomUUID(): string
  • 生成唯一字符串 UUID

    Returns string

    生成的唯一字符串

    import { genRandomUUID } from 'jevon-utils'
    
    const uuid = genRandomUUID()
    console.log(uuid)
    
    // 44e7cfca-11aa-4dbf-9f24-a1371468e6b5

Const getCookie

  • getCookie(name: string): any
  • 获取Cookie,注意只能用于浏览器环境

    Parameters

    • name: string

      cookie的名称

    Returns any

    具体name对应的cookie值

    import { getCookie } from 'jevon-utils'
    
    const name = getCookie('name')
    console.log(name) // test

Const getParamByName

  • getParamByName(name: string, url?: string): string
  • 获取URL中的参数

    Parameters

    • name: string

      参数key

    • Optional url: string

      传递的URL,如果为空则取 window.location.href

    Returns string

    返回key对应的值

    import { getParamByName } from 'jevon-utils'
    
    const url = 'www.baidu.com?c=aa'
    getParamByName('c') // => 'aa'

Const iP2Number

  • iP2Number(ip: string): number
  • 将IP地址转化一个Number类型的数字

    Parameters

    • ip: string

      IP 地址

    Returns number

maskIp

  • maskIp(mask: any, ip: any): number
  • Parameters

    • mask: any
    • ip: any

    Returns number

prefixStyle

  • prefixStyle(style: string): string
  • 给某些CSS样式加浏览器前缀 适用范围:js给某些DOM添加动画

    Parameters

    • style: string

      CSS样式

    Returns string

    加了浏览器前缀的CSS样式

    // 加了合适前缀的CSS属性
    const TRANSFORM = prefixStyle('transform')
    // ===> webkitTranform
    
    // 使用该CSS属性
    this.$refs.image.style[TRANSFORM] = `scale(${scale})`

Const readablizeBytes

  • readablizeBytes(bytes: number): string
  • 将 byte 数据转化为不同单位的值

    Parameters

    • bytes: number

      字节值

    Returns string

    带单位的字符串

    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

Const removeCookie

  • removeCookie(name: string): void
  • 删除一个cookie

    Parameters

    • name: string

      cookie的key

    Returns void

    无返回值

    import { removeCookie } from 'jevon-utils'
    
    // 删除cookie
    removeCookie('name')

Const scrollToTop

  • scrollToTop(): void
  • 平滑滚动到页面顶部

    Returns void

    无返回值

    import { scrollToTop } from 'jevon-utils'
    
    scrollToTop() // 平滑回到页面顶部

Const setCookie

  • setCookie(name: string, value: string, days: number): void
  • 设置cookie,注意只能用于浏览器环境

    Parameters

    • name: string

      cookie名称

    • value: string

      cookie值

    • days: number

      过期时长,单位:天

    Returns void

    无返回值

    import { setCookie } from 'jevon-utils'
    
    // 设置key为name的cookie,过期时长为7天
    setCookie('name', 'test', 7)

Const sliceExecData

  • sliceExecData(data: Array<any>, len: number, duration: number, promiseFunc: IExecFunc, callback: ICallbackFunc): Promise<void>
  • 对输入的数据(数组)进行分片执行 适用范围,接口对请求的数据有长度限制

    Parameters

    • data: Array<any>

      数据源(会被切分传递给 promiseFunc 去执行)

    • len: number

      分片长度(传递给 promiseFunc 的数据长度)

    • duration: number

      执行间隔(执行一次 promiseFunc 的时间间隔)

    • promiseFunc: IExecFunc

      执行函数

    • callback: ICallbackFunc

      每次执行的结果(结果,剩余长度)

    Returns Promise<void>

Const splitThousands

  • splitThousands(number: string): string

Const throttle

  • throttle(func: Function, wait: number, immediate: boolean): Function
  • 节流函数,适用场景,文本框输入变化,发起异步请求,对请求的间隔进行限制 多次执行,转化为每隔 wait 时间调用一次

    Parameters

    • func: Function

      被包装的函数

    • wait: number

      间隔 wait

    • immediate: boolean

      是否立即执行

    Returns Function

    返回被包装的函数

    import { throttle } from 'jevon-utils'
    
    const log = (text) => {
      console.log(text)
    }
    
    const logger = throttle(log, 2000, true)
    
    logger('hello1')
    logger('hello2')
    // 只有 hello1 被输出

Const versionStringCompare

  • versionStringCompare(preVersion?: string, lastVersion?: string): number
  • 用于比较两个版本号

    结果为 1: 新版本 大于 旧版本

    结果为 0: 版本号一致

    结果为 -1: 旧版本 大于 新版本

    Parameters

    • Default value preVersion: string = ""

      旧版本号

    • Default value lastVersion: string = ""

      新版本号

      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

    Returns number

Object literals

Const api

api: object

deSerialize

  • deSerialize(val: any): any

forEach

  • forEach(cb: any): boolean

get

  • get(key: any, val: any): any

getAll

  • getAll(): {}

has

  • has(key: any): boolean

remove

  • remove(key: any): boolean

removeAll

  • removeAll(): boolean

serialize

  • serialize(val: any): string

set

  • set(key: any, val: any): any

Const store

store: object

封装操作 localStorage 的 api get、set、has、getAll等

storage

storage: Storage = window.localStorage

version

version: string = "1.0.1"

session

session: object

storage

storage: Storage = window.sessionStorage