vue实现密码显示与隐藏按钮的自定义组件功能


Posted in Javascript onApril 23, 2019

思路

实现该组件有两个思路,一个使用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实现密码显示与隐藏按钮的自定义组件功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
asp 的 分词实现代码
May 24 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
Feb 27 Javascript
js 获取(接收)地址栏参数值的方法
Apr 01 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
微信小程序之GET请求的实例详解
Sep 29 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
JavaScript实现原型封装轮播图
Dec 27 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 #Javascript
vue缓存的keepalive页面刷新数据的方法
Apr 23 #Javascript
Vue 指令实现按钮级别权限管理功能
Apr 23 #Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 #Javascript
Vue infinite update loop的问题解决
Apr 23 #Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 #Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 #Javascript
You might like
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
python爬虫常用的模块分析
2014/08/29 Python
Python函数返回值实例分析
2015/06/08 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
.NET remoting中对象激活的两种方式
2015/06/08 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
监察建议书范文
2014/03/12 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
债务纠纷委托书
2014/08/30 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
依法行政工作汇报
2014/10/28 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
商业计划书之服装
2019/09/09 职场文书
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技