1.4.7 • Published 3 years ago

okutil v1.4.7

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

教师空间 okUtil 公共库

array

  • import {array} from 'okUtil'
 /**
 * 数组根据数组项为object时的object中的key排序
 * @param {*必参} array 原数组
 * @param {*必参} key 符合条件object中的key
 * @param {*选参} ascend ascend参数代表升序,不传或传其他的自动升序
 */
sortByKey: function(array, key, ascend) {}
/**
 * 数组根据数组项为object时的object中的key为给定value的返回值
 * @param {*必参} array 原数组
 * @param {*必参} key 数组object项的key
 * @param {*必参} value 数组中object项的value
 * return 符合条件的{}
 */
findByPair: function(array, key, value) {}

cookie

  • import {cookie} from 'okUtil'
/**
 * 验证字符串是否合法的cookie键名
 *
 * @param {string} source 需要遍历的数组
 * @meta standard
 * @return {boolean} 是否合法的cookie键名
 */
 _isValidKey: function(key) {}

 /**
 * 获取cookie的值(未解码)
 * @param {string} key cookie的键名
 * @return {string|null} cookie值,获取不到时返回null
 */
getRaw: function(key) {}

/**
 * 获取cookie的值,用decodeURIComponent进行解码
 * @param {string} key cookie的键名
 * @return {string|null} cookie值,获取不到时返回null
 */
get: function(key) {}

/**
 * 设置cookie的值(未解码)
 * @param {string} key cookie的键名
 * @param {string} value cookie的值
 * @param {Object} [options] cookie的其他可选参数
 */
setRaw: function(key, value, options) {}

 /**
 * 设置cookie的值,用encodeURIComponent进行编码
 * @param {string} key cookie的键名
 * @param {string} value cookie的值
 * @param {Object} [options] cookie的其他可选参数
 * @config {Date|number} [expires] cookie过期时间,如果类型是数字的话, 单位是毫秒
 * @config {string} [domain] cookie域名
 * @config {string} [secure] cookie是否安全传输
 */
set: function(key, value, options) {}

// 删除cookie
del: function(key) {}

date

  • import {date} from 'okUtil'
 /*
  * 日期转化为自定义格式
  * @param {Date} date
  * @param {string} fmt
  * @return {String}
  */
format: function(date, format) {}
/*
  * 毫秒转化为时、分、秒
  * @param {Number} msd
  * @param {String} lang
  * @return {String}
  */
msToStr: function(msd) {}

number

  • import {number} from 'okUtil'
/**
     * 转为千分位
     * @param {*} val 必选
     * @param {*} param  可选分隔符
     * @returns 
     */
toCurrency: function(val, param) {}

/*
* 格式化文件大小
* @param {Number} bytes	字节数
* @param {Number} dot		省略至几位数
* @return {String}
*/
formatFileSize: function(bytes, dot) {}

 /*
* 修复Number.prototypetoFixed() 方法的精度问题
*  Number.prototype.toFixed.call(2.55, 1); // 2.5 错误
*  toFixed(2.55, 1); // 2.6  正确
*/
toFixed: function(number, n) {}

func

  • import {func} from 'okUtil'
/**
 * object (Object): 要检索的对象。
 * path (Array|string): 要获取属性的路径。
 * [defaultValue] (*): 如果解析值是 undefined ,这值会被返回。
 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
 * _.get(object, 'a[0].b.c');
 * // => 3
 * _.get(object, ['a', '0', 'b', 'c']);
 * // => 3
 * _.get(object, 'a.b.c', 'default');
 * // => 'default'
*/
get:function(object, path, [defaultValue])

// okUtil.type() 函数用于确定JavaScript内置对象的类型,并返回小写形式的类型名称。
// 如果对象是undefined或null,则返回相应的"undefined"或"null"
type: function(param) {}

isEmptyObject: function(obj) {}

isFunction: function(obj) {}

noop: function() {},
uuid: function() {}
/**
 * throttle 函数节流
 * @param fn
 * @param delay
 */
throttle: function(fn, delay) {}

/**
 * debounce 函数去抖
 * @param fn
 * @param delay
 * @param immediate 为true的时候立即执行一次,为false或不传的时候只有停止的时候才执行
 */
debounce: function(fn, delay,immediate) {}

deepCopy(obj) {}

storage

  • import {storage} from 'okUtil'
// 本地持久化存储

getItem: function(key) {}
removeItem: function(key) {}
setItem: function(key, value, expirationDay) {}
clearExpiration: function(key) {}
clear: function() {}

string

  • import {string} from 'okUtil'
/**
 * 获取目标字符串在gbk编码下的字节长度
 * @name baidu.string.getByteLength
 * @function
 * @grammar baidu.string.getByteLength(source)
 * @param {string} source 目标字符串
 * @remark
 * 获取字符在gbk编码下的字节长度, 实现原理是认为大于127的就一定是双字节。如果字符超出gbk编码范围, 则这个计算不准确
 * @meta standard
 * @see baidu.string.subByte
 *
 * @returns {number} 字节长度
 */
getByteLength: function(source) {}
/**
 * 对目标字符串按gbk编码截取字节长度
 * @name baidu.string.subByte
 * @function
 * @grammar baidu.string.subByte(source, length)
 * @param {string} source 目标字符串
 * @param {number} length 需要截取的字节长度
 * @param {string} [tail] 追加字符串,可选.
 * @remark
 * 截取过程中,遇到半个汉字时,向下取整。
 * @see baidu.string.getByteLength
 *
 * @returns {string} 字符串截取结果
 */
subByte: function(source, length, tail) {}
escape: function(str) {}

url

  • import {Url} from 'okUtil'
var url = new Url("q=URLUtils.searchParams&topic=api")
url.has(params)
url.get(params)
url.getAll(params)
url.append(key, value)
url.toString()
url.set(key, value)
url.delete(params)

NPM 化

按需加载设置

  • 借助 babel-plugin-import,我们可以只引入需要的组件,以达到减小项目体积的目的。
  • 首先,安装 babel-plugin-import:
  • $ npm install babel-plugin-import -D
  • 或者
  • $ yarn add babel-plugin-import -D
  • 然后,将 babel.config.js 修改为:
module.exports = {
  plugins: [
    [
      "import",
      {
        libraryName: 'okutil',
        libraryDirectory: "es"
      },
    ],
  ],
};