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 相关文章推荐
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
chrome调试javascript详解
Oct 21 Javascript
JS+CSS实现仿msn风格选项卡效果代码
Oct 22 Javascript
JS设置下拉列表框当前所选值的方法
Dec 22 Javascript
javascript表单事件处理方法详解
May 15 Javascript
原生js实现ajax方法(超简单)
Sep 20 Javascript
js获取ip和地区
Mar 10 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
vue+高德地图实现地图搜索及点击定位操作
Sep 09 Javascript
浅谈js数组splice删除某个元素爬坑
Oct 14 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实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
十大使用PHP框架的理由
2015/09/26 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
jQuery中queue()方法用法实例
2014/12/29 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
python根据京东商品url获取产品价格
2015/08/09 Python
django 创建过滤器的实例详解
2017/08/14 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
企业年检委托书范本
2014/10/14 职场文书
兵马俑的导游词
2015/02/02 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
python 爬取天气网卫星图片
2021/06/07 Python
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js