欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年04月23日 15:17:30   作者:前端小宇  
本文通過兩種思路給大家介紹vue實現(xiàn)密碼顯示與隱藏按鈕的自定義組件功能,感興趣的朋友跟隨小編一起看看吧

思路

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

1.v-model形式

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

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

關于v-model的實現(xiàn)可查看其他關于v-model的實現(xiàn)文章。

最后實現(xiàn)的子組件文件如下,這里的顯示隱藏的點擊使用的是文字,實際使用時可使用對應的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>

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

2。.sync修飾符

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

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

父組件引用方式

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

寫到最后

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

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

相關文章

  • Vue頁面切換和a鏈接的本質(zhì)區(qū)別詳解

    Vue頁面切換和a鏈接的本質(zhì)區(qū)別詳解

    今天小編就為大家分享一篇Vue頁面切換和a鏈接的本質(zhì)區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue.JS入門教程之自定義指令

    Vue.JS入門教程之自定義指令

    這篇文章主要為大家詳細介紹了Vue.JS入門教程之自定義指令,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 在vue中實現(xiàn)echarts隨窗體變化

    在vue中實現(xiàn)echarts隨窗體變化

    這篇文章主要介紹了在vue中實現(xiàn)echarts隨窗體變化,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn)流程介紹

    Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn)流程介紹

    這篇文章主要介紹了Vue數(shù)據(jù)增刪改查與表單驗證的實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-10-10
  • 關于VueRouter導入的全過程

    關于VueRouter導入的全過程

    這篇文章主要介紹了關于VueRouter導入的全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成的方法

    在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成的方法

    在Vue3中實現(xiàn)二維碼生成需要使用第三方庫來處理生成二維碼的邏輯,常用的庫有 qrcode和 vue-qrcode,這篇文章主要介紹了在Vue3中使用vue-qrcode庫實現(xiàn)二維碼生成,需要的朋友可以參考下
    2023-12-12
  • 詳解Vue中狀態(tài)管理Vuex

    詳解Vue中狀態(tài)管理Vuex

    vuex是一個專門為vue.js設計的狀態(tài)管理模式,并且也可以使用devtools進行調(diào)試。
    2017-05-05
  • element中el-table局部刷新的實現(xiàn)示例

    element中el-table局部刷新的實現(xiàn)示例

    本文主要介紹了element中el-table局部刷新的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • vue獲取dom元素注意事項

    vue獲取dom元素注意事項

    這篇文章主要介紹了vue獲取dom元素注意事項及vue獲取dom元素的內(nèi)容,需要的朋友可以參考下
    2017-12-12
  • JointJS流程圖的繪制方法

    JointJS流程圖的繪制方法

    這篇文章主要為大家介紹了JointJS流程圖的繪制方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論