vue深度响应Array中的Object(vue深度响应数组内的对象)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue深度响应Array中的Object(vue深度响应数组内的对象)相关的知识,希望对你有一定的参考价值。

参考技术A

目前Vue官网上只解释了数组内修改string、number等深层次响应 数组更新检测
但是没有解释如何解决 Vue深度响应Array中的Object ,我自己想出了一套解决方案

首先需要这几个数据:
1、 需要深度响应的数组
2、 取出需要响应的Object,复制一份
3、 获取需要响应的Object的下坐标index

操作:

vue 对象拷贝

参考技术A 先说几种情况的对象拷贝

1.“=” 赋值方法

let a=b:’2‘,c:‘3’

let e=a

e.b='5'

结果

a.b="5"

改变了原来的值

2.Object.assign(,val)  对象拷贝

let a=name:"张三"

let b=Object.assign(,a)

 b.name="wangwu"

//a.name="张三"

但是当

let a = name:firstName:'wang',lastName:'er'

let b=Object.assign(,a)

b.name.firstName="wangwu"

a.name.firstName="wangwu"   //又回来了

这是为什么呢?

这是因为object.assign是浅拷贝当,b.name是个栈 对象的引用 b.name.firstName   a.name也是栈对象的引用 一改都改

以上是关于vue深度响应Array中的Object(vue深度响应数组内的对象)的主要内容,如果未能解决你的问题,请参考以下文章

vue3手写reactive深的劫持深的监视深的响应数据

vue、watch功能对Array和Object的监听oldVal,val新老值一样的解决方案

vue 对象拷贝

20181223 前端开发周报

vue-watch

深拷贝与浅拷贝的实现(一)