vue2.0使用深层object数据更改问题;

577 阅读1分钟

问题点: 通过序号更改object对象里的对象, 视图层没有对于的响应;

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