国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue實現密碼顯示與隱藏按鈕的自定義組件功能

2019-11-19 11:43:24
字體:
來源:轉載
供稿:網友

思路

實現該組件有兩個思路,一個使用v-model進行雙向綁定,一個是使用prop的.sync修飾符、父子組件通信。

1.v-model形式

v-model的實現需要在自定義組件中自定義一個inputvalue值,因為vue中的父子組件傳遞機制問題,在組件中直接修改props注入的key字段時,vue會給出錯誤。子組件中定義inputvalue字段,用于子組件中input元素的值的雙向綁定,子組件中的input數據綁定可以使用v-model,也可以使用實現v-model的原理語法糖,下面兩種方式都可作為子組件中的數據綁定。

<input type="password" v-model="inputvalue"/><input type="password" :value="inputvalue" @input="inputvalue=$event.target.value"/>

關于v-model的實現可查看其他關于v-model的實現文章。

最后實現的子組件文件如下,這里的顯示隱藏的點擊使用的是文字,實際使用時可使用對應的icon字體圖標,并設定一定的樣式。

<template><div>  <input :type='show?"text":"password"' :value="inputvalue" @input="inputvalue=$event.target.value" :placeholder='placeholder'/>  <i :title="show?'隱藏密碼':'顯示密碼'" @click="changePass" style="cursor:pointer;">{{show?'隱藏':'顯示'}}</i></div></template> <script>export default {  props: {    value: {      default: "",      type: String    },    placeholder: {      default: "",      type: String    },  },  data(){    return{      inputvalue:"",      show:false,//密碼顯示或隱藏的Boolean,默認false,密碼不顯示    }  },  watch:{    inputvalue(news,olds){      this.$emit("input",news);    }  },  mounted(){    this.inputvalue=this.value;  },  methods:{    changePass(){      this.show=!this.show;    }  }}</script><style></style>

父組件引用方式如下

<input-password v-model="value"></input-password>

因為這里實現的v-model的綁定方式,而v-model的實現就是監聽的input事件,則當inputvalue改變時,則向父組件發出input事件,父組件使用v-model監聽input事件,修改父組件中的value值,此處實現了雙向綁定,同時在顯示和隱藏的i標簽上綁定事件,點擊i標簽時改變show的值,通過判斷show的值動態改變input的type,實現密碼的顯示和隱藏。

2。.sync修飾符

.sync修飾符的實現與v-model的實現方式相同,唯一不同的是watch監聽inputvalue變化時向父組件發出的事件修改為 "update:value" ,修改后inputvalue的監聽函數如下

inputvalue(news,olds){      this.$emit("update:value",news);    },

父組件引用方式

<input-password :value.sync="value"></input-password>

寫到最后

其實兩種方式的實現最主要需要的還是父子組件之間的傳值,使用emit,vuex,或自定義倉庫等都可實現父子組件中的傳值,監聽inputvalue修改時可以同時使用兩種emit發送,可同時支持兩種方式。

以上所述是小編給大家介紹的vue實現密碼顯示與隱藏按鈕的自定義組件功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉黎县| 怀宁县| 泾川县| 墨江| 湖口县| 泰宁县| 原阳县| 静乐县| 贵南县| 兰坪| 怀仁县| 岑溪市| 庆阳市| 泸水县| 玛曲县| 神池县| 桐庐县| 临泉县| 哈巴河县| 疏附县| 永年县| 乐都县| 老河口市| 太谷县| 宁化县| 富宁县| 青浦区| 潞西市| 辽中县| 邵阳县| 靖西县| 兴业县| 望城县| 巴青县| 齐河县| 云和县| 葵青区| 连平县| 类乌齐县| 闵行区| 内黄县|