vue2.0使用深层object数据更改问题;
问题点: 通过序号更改object对象里的对象, 视图层没有对于的响应;
- 1.问题产生的原因: vue2.0中 数据的双向绑定是通过 Object.defineProperty()函数来实现的;
object.defindeProperty()详解: developer.mozilla.org/zh-CN/docs/…;
Object.defineProperty()无法对深层对象进行改变;
-
- 解决办法: 使用vue2.0中的api set 解决 cn.vuejs.org/v2/api/#Vue…
- 用法: Vue.set( target, key, value )
- target:要更改的数据源(可以是对象或者数组)
- key:要更改的具体数据
- value :重新赋的值
- 问题点二: set设置后; 视图层同样没有更新;
- 解决: :key值的设置:
解析: 关于 vue中 key值的问题:
- 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes,相当于唯一标识ID。
- Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染, 因此使用key值可以提高渲染效率,同理,改变某一元素的key值会使该元素重新被渲染。
www.jianshu.com/p/56e7cc1f3…