Vue中如何使用v-model实现input元素的清空功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计557个文字,预计阅读时间需要3分钟。
问题来源 + 写input组件时需要请求一个空白按钮,但若直接修改prop中的父级传值会报错。但是,如果不修改父级,无法更新值,也会带来开发问题。+ 解决:使用v-model实现双向绑定,完成大部分数据双向绑定
问题来源
写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上的数据驱动,简单清空子组件上的维护的数据是没有同步到父级上的,这里无疑最佳方案就是单向的数据流,让子组件发生事件时通知父级,父元素传值发生改变,进而改变子组件。
本文共计557个文字,预计阅读时间需要3分钟。
问题来源 + 写input组件时需要请求一个空白按钮,但若直接修改prop中的父级传值会报错。但是,如果不修改父级,无法更新值,也会带来开发问题。+ 解决:使用v-model实现双向绑定,完成大部分数据双向绑定
问题来源
写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上的数据驱动,简单清空子组件上的维护的数据是没有同步到父级上的,这里无疑最佳方案就是单向的数据流,让子组件发生事件时通知父级,父元素传值发生改变,进而改变子组件。

