Vuejs2 如何更新vue的所有属性';观察员';另一个';观察员';
我有两个具有相同键值的vue“observer”数据a和b,我需要将b的值替换为a的值。如果b的值包含一个复杂对象,我希望这个复杂对象是a的值。深度拷贝替换。我有一些想法:Vuejs2 如何更新vue的所有属性';观察员';另一个';观察员';,vuejs2,Vuejs2,我有两个具有相同键值的vue“observer”数据a和b,我需要将b的值替换为a的值。如果b的值包含一个复杂对象,我希望这个复杂对象是a的值。深度拷贝替换。我有一些想法:this.someObject=Object.assign({},this.someObject,{a:1,b:2}),但随后someObject变得不可观察。你有什么好方法吗?多谢各位 我会坚持使用Object.assign()。您应该能够轻松地管理观察者。最简单的解决方案是在组件的根目录下没有someObject。为so
this.someObject=Object.assign({},this.someObject,{a:1,b:2})
,但随后someObject变得不可观察。你有什么好方法吗?多谢各位
我会坚持使用Object.assign()。您应该能够轻松地管理观察者。最简单的解决方案是在组件的根目录下没有someObject。为someObject创建一个包装器,然后在分配新值时,将自动重新创建观察者
如果不清楚,请发布一些代码:-)请提供当前代码
var app = new Vue({
el: '#demo',
mounted: function () {
},
methods: {
clickMe(){
let pureData = {...this.copyData.v }; // get a pure data by vue Observer data
let f = v => v && JSON.parse(JSON.stringify(v)) || {};
let needUpdateData = this.originData.v;
let returnValue = Object.assign({}, needUpdateData, f(pureData)); // exec replace value
console.log('pureData',pureData);
console.log('needUpdateData',needUpdateData);
console.log('returnvalue',returnValue);
console.log('originData',this.originData);
}
},
data: function() {
return {
originData:{
v:{a:1},b:2
},
copyData:{
v:{a:0},b:0
}
}
}
})