问题描述,在使用vue input校验输入内容并且实时更新输入框不生效
<div class="app">
<input v-bind:value="something" v-on:input="update">
</div>
var app = new Vue({
el: ".app",
data: {
something: '123'
},
methods: {
update: function (e) {
this.something = 111; //只会第一次输入后生效
e.target.value = 111; //如果不手动将value设置111,不会实时更新input
}
}
})
**问题在于,使用this.something = 111这一句后,在第一次输入时,input中内容确实变成了111
但是随后的输入input中的内容就不是111了,随着输入内容改变了(难道第一次出发了watcher,随后缓存了?是为了避免每次input更改触发watcher而引起的性能损耗么?),只有手动设置e.target.value = 111才能生效,所以为什么会第一次生效而后不会生效呢?**
**新增:重申下,我问的不是实现方式,而是为何会出现这种现象的原因,不要再说什么v-model,v-model就是:value="som" @input="som = $event.target.value" 的语法糖,
其中som = $event.target.value其实就是等于上面的e.target.value = 111,问题在于为何直接为data赋值第一次有效果后面无效**
摇曳的蔷薇
相关分类