基于vue封裝一個帶眼睛的密碼子組件

眼睛的icon使用的是阿里的圖標庫https://www.iconfont.cn/
【思路分析】:
首先這個密碼組件是input+icon完成的(也可以是img但是我很懶,不想寫css)
對于input來說:要做2件事情
眼睛睜開:type是text,眼睛閉上:type是password
給父組件提交用戶輸入的值
對于圖標來說:要做2件事
可以點擊
保證 密碼-閉眼 文本-睜眼 這個效果
【核心代碼】:
flagType綁定動態(tài)的值 data中的flagType:'password',:class="[flag ? 'iconfont icon-yanjing_yincang_o': 'iconfont icon-yanjing_xianshi_o']"動態(tài)樣式toShowPassword函數(shù),眼睛的點擊事件
<el-input
v-model="value"
:type="flagType"
ref="password"
@input="emitInput"
>
<i
slot="suffix"
class="el-input__icon eye-wrapper"
:class="[flag ? 'iconfont icon-yanjing_yincang_o': 'iconfont icon-yanjing_xianshi_o']"
@click="toShowPassword">
</i>
</el-input>【script代碼】:
```js
data() {
return {
value: '',
flag: true,
flagType: 'password',
}
},
```
```js
methods: {
toShowPassword() {
this.flag = !this.flag
this.flagType = this.flag ? 'password' : 'text'
this.$nextTick(() => {
this.$refs.password.focus()
})
},
? ? ? ?//提交數(shù)據(jù)
emitInput() {
this.$emit('input', this.value)
},
? }
```【父組件引用】:
我在父組件中設(shè)置了展示密碼的按鈕
<div style="width: 200px">
<h1>密碼組件</h1>
<toggle-passowrd v-model="form.password"></toggle-passowrd>
<el-button @click="getPassword">展示密碼</el-button>
</div>在子組件中emitInput這個方法將子組件的數(shù)據(jù)提交到了父組件,父組件通過v-model就可以拿到這個值
這里其實還涉及一個知識點,就是v-model是怎么實現(xiàn)的?其實上面的代碼可以進行原生的改下,請看下面的代碼
<toggle-passowrd v-model="form.password"></toggle-passowrd> // 原生 <toggle-passowrd @input="setPassword" :value="form.password"></toggle-passowrd>
原生需要的方法:
setPassword(val) {
this.form.password = val
},這樣知識就串聯(lián)了起來,子組件通過emit將數(shù)據(jù)給了父組件,父組件通過子組件提交的input事件去取數(shù)據(jù),而vue為此,提供了一個vue的指令,就是v-model,v-model就是獲取數(shù)據(jù),并賦值數(shù)據(jù),實現(xiàn)綁定。
以上就是基于vue封裝一個帶眼睛的密碼子組件的詳細內(nèi)容,更多關(guān)于vue帶眼睛的密碼子組件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue.js實現(xiàn)數(shù)據(jù)雙向綁定的代碼示例
在我們使用vue的時候,當數(shù)據(jù)發(fā)生了改變,界面也會跟著更新,但這并不是理所當然的,我們修改數(shù)據(jù)的時候vue是如何監(jiān)聽數(shù)據(jù)的改變以及當數(shù)據(jù)發(fā)生改變的時候vue如何讓界面刷新的,所以本文就給大家講講Vue.js 數(shù)據(jù)雙向綁定是如何實現(xiàn)的2023-07-07
Nuxt項目支持eslint+pritter+typescript的實現(xiàn)
這篇文章主要介紹了Nuxt項目支持eslint+pritter+typescript的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
vue?url跳轉(zhuǎn)解析和參數(shù)編碼介紹
這篇文章主要介紹了vue?url跳轉(zhuǎn)解析和參數(shù)編碼,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

