vue 数据监控的时候为什么不能监控 arr[2]={name:1} 这样的数据

vue渲染列表数据的时候。假如我要更改第三条数据。我写成arr[2]={name:2} 这种形式的就 数据就不会更新。必须写成arr.splice(1,1,{name:2}) 这种格式。或者push方法vue才会刷新数据。 为什么这样。是因为vue 本来就不支持arr[2]={name:2} 这种方式去更改数据列表吗?为什么。

阅读 1.8k
2 个回答

我猜你一定没有好好看过vue的文档
clipboard.png

因为源码那里,作者使用的defineproperty(),只监控了外部data传进来的list,而没有监控list里面的每一个下标对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题