您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用Vue怎么實現一個驗證碼登錄功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
html
<el-button @click="getCode()" :class="{'disabled-style':getCodeBtnDisable}" :disabled="getCodeBtnDisable">{{codeBtnWord}}</el-button>
數據data
data() { return { loginForm: { phoneNumber: '', verificationCode: '', }, codeBtnWord: '獲取驗證碼', // 獲取驗證碼按鈕文字 waitTime:61, // 獲取驗證碼按鈕失效時間 } }
計算屬性computed
computed: { // 用于校驗手機號碼格式是否正確 phoneNumberStyle(){ let reg = /^1[3456789]\d{9}$/ if(!reg.test(this.loginForm.phoneNumber)){ return false } return true }, // 控制獲取驗證碼按鈕是否可點擊 getCodeBtnDisable:{ get(){ if(this.waitTime == 61){ if(this.loginForm.phoneNumber){ return false } return true } return true }, // 注意:因為計算屬性本身沒有set方法,不支持在方法中進行修改,而下面我要進行這個操作,所以需要手動添加 set(){} } }
關于上面給計算屬性添加set方法,可以參照//www.jb51.net/article/202496.htm
css設置不可點擊時置灰
.el-button.disabled-style { background-color: #EEEEEE; color: #CCCCCC; }
mothods中添加獲取驗證碼方法
getCode(){ if(this.phoneNumberStyle){ let params = {} params.phone = this.loginForm.phoneNumber // 調用獲取短信驗證碼接口 axios.post('/sendMessage',params).then(res=>{ res = res.data if(res.status==200) { this.$message({ message: '驗證碼已發送,請稍候...', type: 'success', center:true }) } }) // 因為下面用到了定時器,需要保存this指向 let that = this that.waitTime-- that.getCodeBtnDisable = true this.codeBtnWord = `${this.waitTime}s 后重新獲取` let timer = setInterval(function(){ if(that.waitTime>1){ that.waitTime-- that.codeBtnWord = `${that.waitTime}s 后重新獲取` }else{ clearInterval(timer) that.codeBtnWord = '獲取驗證碼' that.getCodeBtnDisable = false that.waitTime = 61 } },1000) } }
看完上述內容,你們對使用Vue怎么實現一個驗證碼登錄功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。