vue實現手機號碼的校驗(防抖函式的應用場景)

2022-07-04 08:21:14 字數 1907 閱讀 3666

如果對防抖函式原理有疑惑,鏈結跳轉到關於防抖函式講解的博文:

防抖函式一般是用於頻繁觸發事件,而我們只需要它觸發一次的場景,比如:輸入框的oninput事件、button按鈕點選事件、點讚等操作場景;

今天我們講的demo場景是防抖函式實現手機號碼校驗:

html檢視層**:

<

div

id>

<

input

type

="text"

placeholder

="請輸入手機號碼"

v-model

="val"

@keyup

="check"

/>

<

div

class

="box"

v-show

="statu==true"

>您輸入的手機號碼格式正確

div>

div>

首先我們檢視層**是乙個輸入框後面加上乙個div作為提示資訊,html**很簡單就不過多講解了;

js資料邏輯層**:

//這裡我們要引入乙個檔案,檔案裡面是防抖函式的是實現

//例項化 vue物件

newvue(,

mounted(),

methods:),

handle()$/;

//校驗手機號規則

//如果校驗不通過會返回false,如果校驗通過會返回true

if(reg.test(this

.val))

else},}

})

test.js

function debounce(fn) 

this); //

this 指向vue

}, 1000);};}

最後,我們的效果圖如下(這裡只是簡單的模擬效果,檢視層搭建的不是很美觀):

我們可以看到我們列印的結果只輸出了一次,如果不使用防抖函式,這裡是會觸發11次的,因為一共輸入了11個字元;假設我們的方法體中是傳送ajax和操作dom呢?為了乙個手機號碼校驗,難道我們要進行11次甚至更多次的ajax請求或者dom操作嗎?如果是那樣,我們的程式效能可想而知,所以說防抖函式是一種效能提公升方案;

上述講述的是我們之前常見的cdn方式引入vue,那麼我們如何在vue-cli腳手架中使用防抖函式來進行提公升效能呢?

vue-cli:

首先我們可以在build資料夾中新建乙個js檔案,這裡我們定義common.js:

common.js

//

函式防抖

export function

debounce(fn, delay) , delay);}}

注意:我們在vue-cli中自定義方法必須要export丟擲,不然元件讀取不到

然後我們到我們需要用的檔案中來進行引入和使用:

需要使用的元件:

import  from "../../build/common"
有丟擲就一定有引入,我們這裡用import來引用common.js檔案裡面的方法,這裡的debounce就是我們用來接收common.js裡面方法的變數;

呼叫方式跟上面的一樣:

這裡的search是檢視層繫結的觸發事件,注意這裡也需要是物件的形式來呼叫

methods:,1000),

}

總結:1、防抖函式和節流函式均屬於一種效能優化方案,有效的使用可以提公升程式效能,提公升使用者體驗;

2、防抖函式可適用於點贊、輸入框校驗、取消點讚、建立訂單等不可讓使用者同一時間內頻繁進行操作的場景;

工具類 手機號碼校驗

方便自己下次使用。public class checkphone d d d 中國電信號碼格式驗證 手機段 133,153,180,181,189,177,1700,173 private static final string china telecom pattern 1 33 53 7 37 ...

手機號碼的秘密

imsi 採用e 212格式 編碼格式為 mcc 460 mnc msin mcc 移動國家碼,三個數字,如中國為 460。mnc 移動網號,兩個數字,如中國移動的mnc為00 聯通是01,移動159新號段是02 msin 在某一plmn內ms唯一的識別碼,編碼格式為 h1 h2 h3 s nmsi...

js實現手機號碼脫敏

方法一 要求保留前三位和最後四位,中間對用 處理。如18912341234脫敏處理之後應該變成189 1234。處理方法如下 var str 18912341234 var pat d d d var b str.replace pat,1 2 console.log b 就是起到乙個分組作用,將匹...