扎心了,老铁,程序出了小差,请重新再试
重新再试

首页> 方框图> 其他

数据响应式系统

热门
数据响应式系统
data,watcher, computed 数据响应式原理流程图 {mountCompont,_init,observeArray,data,Object.defineProperty,num,watcher.evaluate(),

Watcher 类:依赖数据,分为 渲染watcher, user watcher, computed watcher

vm:组件实例对象
expOrFn:观察的表达式,函数或字符串,可以触发取值操作 get
cb:被观察者 发现变化后的回调
options:选项配置
isRenderWatcher:是否是渲染 watcher

get:触发取值操作,进而触发属性的 getter
addDep:订阅发布者
cleanDeps:将新订阅的发布者数据 newDeps 赋值给 deps, 并将 newDeps 清空,准备在下一次数据更新时重新订阅发布者
update:进行数据更新
run:更新模版,且重新订阅发布者
evaluate:专门给 computed watch 设计,只调用一次,实现缓存的原理
depend:收集所有的依赖,comouted 依赖收集调用
teardown:取消监听,取消收集的依赖

,run,get 函数,observe,watch 定义的执行函数,dep.depend 依赖收集,new Observer(value),Dep.target,new Watcher,initState,has data?, vm ,newVal,依赖收集到 num dep,data: { num: 0 },校验data: 
1、不能和 props、methods重名
2、代理 data, 属性开头不能是 _ 和 $ 符合
,执行get函数,访问num,watcher,initData,with ,watcher.value,访问 num ,触发 getter 函数,setter
派发更新
,computed Getter 函数,defineReactive 定义响应式 - 订阅发布模式,
value
has '__ob__' ?,依赖收集,return  value.__ob__,组件更新,遍历 watcher.deps,data 数据响应式,派发更新,依赖 num,computed watcher,dep.notify 派发更新,Observer 类,Observer 类有三个属性和两个方法

value:传入该类的值,为数组或对象
dep:Dep 实例,用来收集订阅发布更新
vmCount: 该实例被调用的次数,比如,有一个组件logo, 页面的头部和尾部都需要展示logo, 都用这个组件,那vmCount就会计数,值为2

walk:用于对象,遍历对象,并用Object.defineProperty转化为getter/setter,便于监控数据都get和set
observeArray:observe每个数组元素(observe会调用Observer类)

,user watcher,Yes,dep.addSub(this),Watcher 类,递归响应式处理,第二次访问,缓存原理,defineReactive,Watcher,computed watcher
user watcher
render watch
,watch 响应式过程,Dep.target.addDep(this),组件渲染流程,subs[i].update(),Dep 类:三个属性和四个方法

target: Dep 静态属性,存放当前 Watcher 实例
id:dep 实例下标唯一标识
subs:存放订阅者

addSub:添加一个订阅者,即向subs添加一个Watcher
removeSub:删除一个订阅者,即从subs中移除一个Watcher
depend:收集订阅者
notify:发布数据更新

,dep.depend(),dirty is true?,Observer,$mount,sync 为ture
同步
,Vue 数据响应式原理,updateComponent,value,$watcher,No 空对象,computedNum,No,computer watcher,Dep 类,render watcher,value是否是数组?,组件初始化,render 函数,getter 
依赖收集
,Dep,watcher.depend(),computedGetter,computed 响应式过程,this.dirty = true,queueWatcher
异步队列更新
,walk,遍历subs}

文件简介

编号:22948

名称:数据响应式系统

浏览数:23

收藏数:0

克隆数:0

作者:0

价格:5元

更新时间:2021-07-02 21:38:07

文件很好用,分享文件:

只需一步极速注册

63,195+文件在线编辑

云端同步我的设计

一键高清无水印下载

微信扫码立即登录
二维码失效
请点击刷新

微信和QQ是两个独立账号,账号信息不互通

距离今天活动结束仅剩
000000000毫秒
距离今天活动结束仅剩
000000000毫秒
距离今天活动结束仅剩
000000000毫秒
会员促销今天活动仅剩
000000000毫秒
距离今天活动结束仅剩
000000000毫秒