一 Vue中如何检测数组变化?

1.1 实现数组劫持

  • 数组考虑性能原因没有使用 defineProperty 对数组的每一项进行拦截,而是选择重写数组(push/shift/pop/splice/unshift/sort/reverse)方法
  • 数组中如果是对象数据类型也会进行递归劫持
  • 数组中如果是对象数据类型也会进行递归劫持

1.2 数组的缺点

  • 数组的索引和长度是无法监听到变化的