Vue的响应式浅析

1 Vue如何实现响应式?

  • Vue的响应式是建立在监听data中的数据.

2 在Vue2中响应式的实现

  • Vue通过Object.defineProperty()来实现对数据的代理和监听
  • 将数据声明在data中,Vue会将数据进行封装
  • 给data中的数据添加getting,setting方法.
  • 在Vue发现数据发生变化,进行render(数据)

3 Vue响应式中有特殊的情况.

3.1 对象

  • 对象可以将所有的属性提前声明.
  • 但是,对象有时候无法将所有的属性进行提前声明.
  • 需要动态的添加新的属性,这时候就需要Vue.set或者this.$set来动态绑定.
  • 实际上set API调用的也是Object.defineProperty()来实现.

3.2 数组.

  • 数组无法将未来添加的数据,进行提前声明.
  • 又无法用set API来监听.
  • 尤雨溪使用增加原型链的方式,继承数组原型.
  • 在原有的基础上重写了7个数组的API
  • pop,push,shift,unshift,reverse,sort,splice
  • 帮助数组中的数据动态的代理和监听.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。