第三十二篇:vue的响应式原理
好家伙
什么是响应式?
比较官方的回答:
Vue.js 的核心包括一套“响应式系统”。 “响应式”,是指当数据改变后,Vue 会通知到使用该数据的代码。
例如,视图渲染中使用了数据,数据改变后,视图也会自动更新。
2.1 Object.defineProperty
Object.defineProperty(obj, prop, descriptor)
obj
- 要定义属性的对象。
prop
- 要定义或修改的属性的名称或
Symbol
。 - 妙啊,官方文档就是好用啊
get
属性的 getter 函数,如果没有 getter,则为undefined
。- 当访问该属性时,会调用此函数。执行时不传入任何参数,但是会传入
this
对象(由于继承关系,这里的this
并不一定是定义该属性的对象)。 - 该函数的返回值会被用作属性的值。
默认为undefined
。 set
属性的 setter 函数,如果没有 setter,则为undefined
。- 当属性值被修改时,会调用此函数。该方法接受一个参数(也就是被赋予的新值),会传入赋值时的
this
对象。 - 默认为
undefined
。
这个方法就是!>在一个对象上定义一个新的属性,2.或者改变一个对象现有的属性,并且返回这个对象。
里面有两个字段 set,get。
顾名思义,set都是取设置属性的值,而get就是获取属性的值。