我的经常使用库积累html
本库是彻底的es2015
模块语法,也使用了ts源码。因此使用commonjs方式致使不可用。node
/index.js
根路径的index.js文件为node_modules对外输出的文件,是es6模块方式。ios
/dist
在dist
文件夹里有集成的es6,cjs,umd,borowser方式的文件。es6
browser.js
,umd供浏览器或者amd,cjs使用。main.cjs.js
, commmonjs模式。module.es.js
, es6模式。npm i cdd-lib
interface $time { duration?: number everyDuration?: null | Function dateSeparator?: string timeSeparator?: string final?: null | Function finally?: null | Function times?: number date:any }
declare function _Time(): $time;//构造函数 declare interface $time {//time实例 isRuning: boolean//实例如今的运行状态 hour: number//小时 minutes: number//分钟 seconds: number//秒 year: number//年 times:numer//执行timeout时倒数执行的次数 month: number//月 day: number//日期 stamp:number//建立是的时间戳 duration:number//间隔毫秒数默认1000 dateSeparator: string//日期分隔符默认- timeSeparator: string//时间分隔符默认: date: string//日期 time: string//时间 ap: string//上午仍是下午AM PM start(): any//开始循环执行 stop(): any//结束循环执行 everyDuration?(parms?: any): any//每次执行的函数 timeout.timeout():any//倒数执行的函数 final():cb倒数执行完时执行的回到函数 }
限制一段文字的长短并添加符号,相似String的padEnd,可是该方法是限制和替代而不是补全。typescript
用法:shell
limitText(str:string,limit:10,rep:'.')npm
eg:axios
let str = "你好啊,想要去那里,我想去一个好地方" limitText(str)//=>你好啊,想要去...
对输入的文字进行转义防止注入攻击的函数小程序
深层复制一个对象
虽然如今已经有了Object.assign这样的原生方法,可是有些地方仍是要用到本身写的。数组
用法:
deepClone(obj|array)//=>新的 obj|array
该方法不会拷贝原型的属性。
对元素的某个对象的事件添加节流阀
使用方法:
addThrottle({el, event, handler, model?=0, threshold?=250})
参数:
若是移除这个监听的话直接使用元素对象的removeEvnetListener(event:string)
就好了。
CheckStr(str,type)经常使用验证
type
解析2018-12-12 12:12:12
或者2018-12-12
此类的文字为Date对象。
sortObj(旧)仍然可用,sorObjArray(新名字)。
sortObj/sortObjArray( arr:[obj], property:string|[string|{[prope:string]:boolean}], order:boolean = true, isPromise:boolean=false ):[objSorted]
参数:
arr:[obj]
对象数组,须要排序的目标property:string|[string|{[prope:string]:boolean}]
要按排序的对象属性名称order:string|boolen
排序的方向,true为从小到大sisPromise:boolean = false
是否使用Promise模式,默认为false,注意,使用该参数时前面的order必须传入。 var seed = [ {name:'aaac',age: 12 }, {name:'ecc',age: 12 }, {name:'bccd',age: 12 }, {name:'wds',age: 12 }, {name:'esds',age: 12 }, {name:'esds',age: 9}, ]; // 根据名字从小到da排序 sortObjArrary(seed,'name') // 根据名字从大到小排序 sortObjArrary(seed,'name',false)
// 名字相同时根据年龄从小到大排序 sortObjArray(seed,['name','age']) // 或者 sortObjArray(seed,['name',{age:true}]) // 名字相同时根据年龄从大到小排序 sortObjArray(seed,['name',{age:false}])
返回排序后的新的数组
对于对象数组根据其属性进行排序的方法
下载文件
建立dom
生成指定长度的文字,最低为5个
截取文件的后缀名
filename:文件名字
keepDot:是否保持点'.',默认为false
小程序请求,结合promise使用axios风格
interface $request { (url: string | anyObj | $reqSet, config?: anyObj): Promise<any> get?(url: string, config?: any): Promise<any> post?(url: string, data?: anyObj, config?: any): Promise<any> put?(url: string, data?: anyObj, config?: any): Promise<any> head?(url: string, config?: any): Promise<any> options?(url: string, config?: any): Promise<any> delete?(url: string, config?: any): Promise<any> interceptors?: { request: { use(a: $interRequest, b?: $interRequesError): any }, response: { use(handle: $interResponse): any } } [name: string]: any }
小程序中store2风格的本地存储
interface wxStore2 { (key?: any, data?: any): Promise<any> | void get(key: string): any set(key: string, data: any): any transact(key: string, data: Function): any clear(): void has(key: string): boolean remove(key: string): any getAll(): anyObj add(key: string, data: any): any keys(): any size(): number clearAll(): void isPromise: boolean nameSpace: string | undefined create(): $store2 }
camelToUnderline(str:string,sperator?='_'):string
underlineToCamel(str:string):string
新整理了样式关系
基础的设置,如颜色尺寸什么的。
风格主题
主要是一些函数
mixin的一些样式
浏览器样式重置
包含上述全部
包含上述除了reset.styl
和index.styl
以外的全部。