Skip to content

Vue响应式


思路:

  1. 什么是响应式?
  2. 为什么vue需要响应式?
  3. 响应式的好处?
  4. 响应式的具体实现?优缺点?
  5. vue3中响应式的变化?

回答:

  1. 响应式是指能够监测数据变化并做出响应的机制。
  2. MVVM是指Model、View、View-Model,主要是通过View-Model这个桥梁完成数据驱动,一旦数据发生变化,进行相应的更新处理,更新视图。
  3. Vue通过响应式+虚拟DOM,开发人员只需要操作数据,关注业务,不需要手动操作DOM,提高开发效率。
  4. 在Vue2中,响应式主要是通过Object.defineProperty去进行数据拦截,遍历数据的所有属性,对数组的每一项进行监听,并覆盖了数组的7个方法。如果数据有多层的话,需要进行递归遍历,所以不建议使用层级太深的对象。
  5. Vue3中使用ES6的Proxy去替代Object.defineProperty,编程体验更好,性能也得到提高。另外的话,Vue采用monorepo,将响应式模块抽取成独立的reactivity包,可以更加灵活的使用。