数组就是使用 ​​object.defineProperty​​​ 重新定义数组的每一项,那能引起数组变化的方法我们都是知道的, ​​pop​​​ 、 ​​push​​​ 、 ​​shift​​​ 、 ​​unshift​​​ 、 ​​splice​​​ 、 ​​sort​​​ 、 ​​reverse​​ 这七种,只要这些方法执行改了数组内容,我就更新内容就好了,是不是很好理解。

  1. 是用来函数劫持的方式,重写了数组方法,具体呢就是更改了数组的原型,更改成自己的,用户调数组的一些方法的时候,走的就是自己的方法,然后通知视图去更新。

  2. 数组里每一项可能是对象,那么我就是会对数组的每一项进行观测,(且只有数组里的对象才能进行观测,观测过的也不会进行观测)

vue3:改用 ​​proxy​​ ,可直接监听对象数组的变化。