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 相关文章推荐
javascript 短路法代码精简
Aug 20 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
html组件不可输入(只读)同时任何组件都有效
Apr 01 Javascript
js计算精度问题小结
Apr 22 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
May 06 Javascript
JS中this上下文对象使用方式
Oct 09 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
微信小程序中wxs文件的一些妙用分享
Feb 18 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学习笔记之 函数声明
2011/06/09 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
一些Python中的二维数组的操作方法
2015/05/02 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python按照多个条件排序的方法
2019/02/08 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python右对齐的实例方法
2020/07/05 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
学生思想表现的评语
2014/01/30 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
Python&Matlab实现樱花的绘制
2022/04/07 Python
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers