vue数据渲染
2021-05-31 11:21:27 1 举报
vue
作者其他创作
大纲/内容
class Observer
function initData (vm: Component)
initData
defineReactive(把对象属性定义成响应式)
不是数组 this.walk(value)
observe
校验data 数据与props,methods是否重复
遍历每一个key调用defineReactive
initState
不可配置或者property不存在直接返回
可配置拿到当前property的get set
判断value是否含有__ob__属性含有就是响应式对象
生成一个dep获取当前对象的描述对象property
如果property定义当前对象可配置
Object.defineProperty
给value 增加不可枚举的__ob__属性属性值就是当前的Observer实例
this.value = valuethis.dep = new Dep()
const getter = property && property.get const setter = property && property.set
initProps
保存value生成dep
constructor(构造函数参数是valuevalue 是对象或者数组)
initWatch
是数组this.observeArray(value)
return ob
是否是数组
initComputed
有给ob赋值ob = value.__ob__
ob = new Observer(value)
let childOb = !shallow && observe(val)调用observe获取val的响应式对象如果val是一个基本数据类型那observe就会返回一个undefined如果val是对象数那么就返回响应式对象
observe(获取传入的value 的响应式对象)
let ob: Observer | void;
没有__ob__属性不是服务端渲染是数组或者对象可扩展
initMethods
遍历每一个元素调用observe
0 条评论
回复 删除
下一页