跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Vue 无法检测对象和数组内部的修改是 因为实现不了么 还是性能问题。
未分類
21 4 月 2020

Vue 无法检测对象和数组内部的修改是 因为实现不了么 还是性能问题。

Vue 无法检测对象和数组内部的修改是 因为实现不了么 还是性能问题。

資深大佬 : xcstream 22

前排等答案。
大佬有話說 (5)

  • 資深大佬 : kevin1

    https://cn.vuejs.org/v2/guide/reactivity.html#%E6%A3%80%E6%B5%8B%E5%8F%98%E5%8C%96%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9

  • 資深大佬 : rabbbit

    因为是用 es5 的 defineproperty ()来实现的,天生有缺陷所以实现不了。
    它是是在每个 object 创建的时候为每个添加了 getter 和 setter,之后对 object 直接修改,自然无法进行追踪。
    数组的话是因为只有 push,slice 等几个有些的函数才能触发 setter

  • 資深大佬 : renmu

    没有的,检测不了你可以用$set 方法(在对象中添加数据,修改特定下标)强制触发 diff,vue 基本不依赖 react 那种不可变对象的设计

  • 資深大佬 : murmur

    vue2 是用 Object.defineProperty 来进行数据劫持的。这个方法本身就不支持劫持数组,对对象也仅仅是对对象的属性进行劫持。所以 vue 内部重写了数组的那几个方法。对对象也是做了遍历去劫持每个属性。所以可以说是因为实现不了才导致了性能问题。
    当然 vue3 就没这个问题了。期待 ing

  • 資深大佬 : Elephant696

    懂了 vue3 可以解决这个问题

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具