前端簡潔並實用的工具類函式封裝

發表於2018-03-06

前言

本文主要從日期,陣列,物件,axios,promise和字元判斷這幾個方面講工作中常用的一些函式進行了封裝,確實可以在專案中直接引用,提高開發效率.

1.日期

日期在後臺管理系統還是用的很多的,一般是作為資料存貯和管理的一個維度,所以就會涉及到很多對日期的處理

1.1 element-UI的日期格式化

前端簡潔並實用的工具類函式封裝

DatePicker日期選擇器預設獲取到的日期預設是Date物件,但是我們後臺需要用到的是yyyy-MM-dd,所以需要我們進行轉化

方法一:轉化為dd-MM-yyyy HH:mm:ss

方法二:
從element-UI的2.x版本提供了value-format屬性,可以直接設定選擇器返回的值
bV4tgf

1.2 獲取當前的時間yyyy-MM-dd HH:mm:ss

沒有滿10就補0

2.陣列

2.1 檢測是否是陣列

2.2陣列去重set方法

1.常見利用迴圈和indexOf(ES5的陣列方法,可以返回值在陣列中第一次出現的位置)這裡就不再詳寫,這裡介紹一種利用ES6的set實現去重.

2.set是新怎資料結構,似於陣列,但它的一大特性就是所有元素都是唯一的.

3.set常見操作
大家可以參照下面這個:新增資料結構Set的用法

4.set去重程式碼

Array.from可以把帶有lenght屬性類似陣列的物件轉換為陣列,也可以把字串等可以遍歷的物件轉換為陣列,它接收2個引數,轉換物件與回撥函式,…和Array.from都是ES6的方法

2.3 純陣列排序

常見有冒泡和選擇,這裡我寫一下利用sort排序

2.4 陣列物件排序

2.5 陣列的”短路運算”every和some

陣列短路運算這個名字是我自己加的,因為一般有這樣一種需求,一個陣列裡面某個或者全部滿足條件,就返回true

以上兩種情景就和||和&&的短路運算很相似,所以我就起了一個名字叫短路運算,當然兩種情況都可以通過遍歷去判斷每一項然後用break和return false 結束迴圈和函式.

3.物件

3.1 物件遍歷

3.2 物件的資料屬性

1.物件屬性分類:資料屬性和訪問器屬性;

2.資料屬性:包含資料值的位置,可讀寫,包含四個特性包含四個特性:

3.修改資料屬性的預設特性,利用Object.defineProperty()

3.3 物件的訪問器屬性

1.訪問器屬性的四個特性:

2.定義:
訪問器屬性只能通過要通過Object.defineProperty()這個方法來定義

vue中最核心的響應式原理的核心就是通過defineProperty來劫持資料的getters和setter屬性來改變資料的

4.axios

4.1 axios的get方法

4.2 axios的post方法

4.3 axios的攔截器

主要分為請求和響應兩種攔截器,請求攔截一般就是配置對應的請求頭資訊(適用與常見請求方法,雖然ajax的get方法沒有請求頭,但是axios裡面進行啦封裝),響應一般就是對reponse進行攔截處理,如果返回結果為[]可以轉化為0

1.請求攔截:將當前城市資訊放入請求頭中

2.響應攔截:處理reponse的結果

5.promise

promise是一種封裝未來值的易於複用的非同步任務管理機制,主要解決地獄回撥和控制非同步的順序

5.1 應用方法一

5.2 應用方法二

6.文字框的判斷

6.1 全部為數字

方法一(最簡單):

方法二:isNaN

注:當num1為[](空陣列)、“”(空字串)和null會在過程中轉換為數字型別的0,所以也會返回false,從而判斷為數字,所以可以將用typeof將以上特殊情況剔除.

方法三:正則

6.2 只能為數字或字母

這個用正則判斷
定義一個正則:let reg=/^[0-9a-zA-Z]*$/g

6.3 只能為數字,字母和英文逗號

因為存在輸入多個編號,以英文逗號分隔的情況
定義一個正則:let reg=/^[0-9a-zA-Z,]*$/g

6.4 判斷輸入的位數不超過16位

直接利用字串新加的length屬性來判斷

結束

很開心你還能看到這裡,這些類可能你現在用不到,但可以先收藏著.
大家可以一起交流,下次專案開發直接拿過去用,現在3月專案比較趕,這個真的可以提高開發效率哦!祝大家新年快樂噠.

相關文章