我的經常使用庫積累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
以外的全部。