详解Vue中数组和对象更改后视图不刷新的问题

2020-06-13 10:30:41易采站长站整理

为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将触发状态更新:


// Vue.set
Vue.set(example1.items, indexOfItem, newValue)
// Array.prototype.splice
example1.items.splice(indexOfItem, 1, newValue)

为了解决第二类问题,你可以使用 splice:


example1.items.splice(newLength)

参考资料

深入响应式原理官方文档
Object.assign方法介绍
getter/setter方法介绍
对象的响应问题