const testdata = reactive({name:小明,age:18})
这里不能
testdata = {name:小钱,age:18}
object.assign(testdata,source) 这个方法是深拷贝
现在要一次性 给 testdata 浅拷贝 赋值一个对象
如何操作
const testdata = reactive({name:小明,age:18})
这里不能
testdata = {name:小钱,age:18}
object.assign(testdata,source) 这个方法是深拷贝
现在要一次性 给 testdata 浅拷贝 赋值一个对象
如何操作
Object.assign主要看对象的键值,如果源对象的属性值是一个指向对象的指针,那也只拷贝那个指针。所以如果对象的属性值为基础类型
,对于通过Object.assign()拷贝的那个属性而言是深拷贝
;如果对象的属性值为引用
,对于通过通过Object.assign()拷贝的那个属性而言其实是浅拷贝
的。
vue reactive 实际为ES6的proxy。直接用proxy对原始对象监控就行了,而且原来题主另外一个应该数据分开,在给vue提供数据源前新建一个proxy监控数据。在数据修改时同时设置下vue的和自己的,然后自己建立的proxy只会返回修改的属性而不是整个对象。题主还是研究下Proxy来实现好些,而不是watch整个对象