vue中对象数组多层嵌套视图不更新的解决办法

发布时间:2022-1-10 10:11

当我们开发的时候,有一些数据是对象里面嵌套数组,数组里面嵌套对象,数据结构很复杂的时候,当你改变数组对象里面的某个值时,发现数据更新了,但是页面不更新,那么应该怎么解决呢?

1、对象更新

{{a.title}}

需要使用,以下这种方式去更新

this.$set(a,'title','列表2');
//或者
Vue.set(a,'title','列表2');

2、数组更新

this.arr=[1,2,3,4];
<span v-for="value in arr">{{value}}</span>

同理:

Vue.set(arr,索引值,value);
//或者
arr.splice(索引值,元素数目,value);

3、数组对象的组合更新

this.arr=[{
key:'key1',
value:[] 
},{
key:'key2',
value:[] 
}];

例如,想要将arr[0].value重新赋一个数组,可以使用

this.arr[0].value.splice(0, 1, ...newArr);
//或者
this.$set(this.arr[0], "value", newArr);

this.$set(参数1,参数2,参数3) 用法总结

更新数组

参数1:数组

参数2:数组的索引

参数3:赋值的数据

更新对象

参数1:对象

参数2:key

参数3:赋值的数

Vue3学习笔记之依赖注入Provide/Inject 网站建设

Vue3学习笔记之依赖注入Provide/Inject

Provide / Inject 通常,当我们需要从父组件向子组件传递数据时,我们使用 props。想象一下这样的结构:有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容。在这种情况下,如果...
Vue3全局实例上挂载属性方法案例讲解 网站建设

Vue3全局实例上挂载属性方法案例讲解

在大多数开发需求中,我们有时需要将某个数据,或者某个函数方法,挂载到,全局实例身上,以便于,在项目全局的任何位置都能够调用其方法,或读取其数据。 在Vue2 中,我们是在 main.js 中 直...