(自用面试题)Vue中封装的数组方法有哪些?其如何实现页面更新?

95 阅读1分钟

Vue中封装的数组方法

Vue将一些被侦听的数组⽅法进⾏了封装,它们也会触发视图更新,具体包括:

  • push()方法
  • pop()方法
  • unshift()方法
  • shift()方法
  • splice()方法
  • reverse()方法
  • sort()方法

那它们是如何实现页面更新的呢?

如何实现页面更新

通过重写数组中的原生方法:首先获取到这个数组的Observer对象(即__ob__),如果有新的值,就调用observeArray继续对新的值观察变化(即通过target__proto__ == arrayMethods来改变了数组实例的型),然后手动调用notify,通知渲染Watcher,执行update。