vue中 直接赋值和assign的问题

使用element的dialog 想点击按钮的时候 将一行数据传入dialog进行编辑将row直接赋值给dialog的对象 发现值确实给了dialog对象 但是页面不显示 并且vue的浏览器插件并没有监听到数据的变化

img

img

img


但如果赋值改为 assign的方式 又好使了 这是什么原理啊.

img

img


object.assign 是拷贝 。

Object.assign()方法的第一个参数是目标对象,后面的参数都是源对象,Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。


            let obj = {
                a: 1
            }
            let obj1 = obj // 这种直接赋值是引用了obj,不是拷贝,受obj修改影响
            let obj2 = Object.assign({}, obj) // 这种浅拷贝了obj,不受obj修改影响
            obj.a = 2
            console.log('obj1', obj1) // {a: 2}
            console.log('obj2', obj2) // {a: 1}