vue中input的v-model清空操作
2019-09-06 14:04
4439 查看
问题来源
写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清空操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣的文章:
相关文章推荐
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- vue通过v-model,@input, @v-model.lazy几种输入框数据更新方式的区别
- vue中使用laydate.js选择日期,修改其他model时日期会被清空
- vue input v-model
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- vue 是如何实现视图与viewmodel的双向绑定的?为什么数据一变化,视图就会立即更新,视图产生用户操作,viewmodel就能马上得知
- vue封装可以使用v-model的input输入框
- 从vue.js的源码分析,input和textarea上的v-model指令到底做了什么
- vue中对话框关闭以后清空对话框中input,select内容
- vue教程1-01 v-model 一般表单元素(input) 双向数据绑定
- Vue 双向数据绑定 V-model 通常配合input 使用
- 【Vue】零基础学习Vue: 第9课 Vue的 v-model指令,设置input表单输入的方法:
- 从vue.js的源码分析,input和textarea上的v-model指令到底做了什么
- 如何恢复回收站清空的文件?简 4000 单步骤教你操作
- Vue 学习笔记 — 无法避免的dom操作