vue不能检测到通过索引值设置某一项?
来源:4-3 响应式对象(下)

小郎Lie
2019-05-07
将data变为响应式的时候,如果遇到数组是会遍历每一个元素并将其定义为响应式的
observeArray (items: Array<any>) {
for (let i = 0, l = items.length; i < l; i++) {
observe(items[i])
}
}
官方文档里面写的下面这句是不是有问题?
实际情况是
// 如果items = ['a', 'b', 'c']
vm.items[1] = 'x' // 不是响应性的
// 如果items是一个对象数组 items = [{a: 1}, {a: 2}]
vm.items[0].a++ // 是响应式的
vm.items[0] = {a: 2} // 不是响应式的
感觉源码这里对数组的深层遍历不是很必要
写回答
1回答
-
ustbhuangyi
2019-05-07
如果没有遍历去 observe,你举的例子
// 如果items是一个对象数组 items = [{a: 1}, {a: 2}]
vm.items[0].a++ // 是响应式的
如何是响应式的呢?022019-05-08
相似问题