看了这位老哥截的官方文档的一句话就瞬间开朗了:
借鉴的文章
Vue官方文档解释
我直接说说,是什么操作导致的无效:
我把一个对象赋值给data中的obj(真实情况是,我通过请求进行赋值):
data() {
return {
obj:{}
}
},
fun(){
this.obj = {test:'1'}
}
但是我需要给这个obj,添加新的键值,所以在赋值结束之后,我又添加了一个属性
fun(){
this.obj = {test:'1'}
this.obj.newkey = 'new'
}
我再将这个newkey跟input进行双向绑定( v-model):
<el-input v-model="obj.newkey"/>
可以尝试的进行输入,发现input中的值会跳回原来的。
那么如何解决呢? 加入新的键值要在赋值给data之前,即:
fun() {
const obj = {
test:'1'
}
obj.newkey = 'new'
this.obj = obj
}