小编给大家分享一下如何使用vue实现密码显示与隐藏按钮的自定义组件功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
酉阳土家族苗族网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。思路
实现该组件有两个思路,一个使用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" >{{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实现密码显示与隐藏按钮的自定义组件功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:如何使用vue实现密码显示与隐藏按钮的自定义组件功能-创新互联
当前地址:https://www.cdcxhl.com/article8/deegop.html
成都网站建设公司_创新互联,为您提供响应式网站、网站收录、服务器托管、网站策划、电子商务、移动网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联