vue中input的v-model清空操作


Posted in Javascript onSeptember 06, 2019

问题来源

写input组件的时候需求一个清空按钮,但是如果直接修改prop中父级的传值会报错。但是如果不修改父级无法更新值,也会带来开发的问题。

解决

v-model 完成大部分数据双向绑定

<input type="text" :value="inputValue"
      @change="$emit('change',$event.target.value)"
      @blur="$emit('blur',$event.target.value)"
      @focus="$emit('focus',$event.target.value)"
      @input ="$emit('input',$event.target.value)"
  >

四个事件将input的事件传递,在父级使用

<g-input v-model="num"></g-input>

但是在清空操作上出现难题,因为无论怎么操作都无法触发vue上的数据驱动,简单清空子组件上的维护的数据是没有同步到父级上的,这里无疑最佳方案就是单向的数据流,让子组件发生事件时通知父级,父元素传值发生改变,进而改变子组件。不过感觉这样做就违背使用v-model的初衷,但是也没有办法了

对要进行监听的dom绑定事件

子组件中:

<div @click="clear">
   <g-icon></g-icon>
</div>

将需要清空数据的消息告诉父级

clear(){
   this.$emit('inputclear',{clear:''})
  }

以上两种可以合并成

<div @click="$emit('inputclear',{clear:''})">
   <g-icon v-if="isClearShow" icon="error" class="clearForInput" ></g-icon>
</div>

父级中:

<g-input v-model="num" @inputclear="num = $event.clear"></g-input>

现在就可以了

总结

以上所述是小编给大家介绍的vue中input的v-model清空操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
浅析return false的正确使用
Nov 04 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
Mar 30 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
Vue单页应用引用单独的样式文件的两种方式
Mar 30 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
vue实现表单录入小案例
Sep 27 Javascript
js 数组 fill() 填充方法
Nov 02 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 #Javascript
layui 表格操作列按钮动态显示的实现方法
Sep 06 #Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 #Javascript
微信小程序 搜索框组件代码实例
Sep 06 #Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
Sep 06 #Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 #Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 #jQuery
You might like
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python测试mysql写入性能完整实例
2018/01/18 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python 装饰器的使用示例
2020/10/10 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
骆驼官方商城:CAMEL
2016/11/22 全球购物
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
自我鉴定书面格式
2014/01/13 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
护士求职信
2014/07/05 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
宇宙与人观后感
2015/06/05 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js