vue异步更新
2020-08-03 12:36:45 0 举报
AI智能生成
vue异步更新
作者其他创作
大纲/内容
update()
Dep 通知 (notify )
执行 watcher 的update方法
core\observer\watcher.js
Dep 通知 (notify )
执行 watcher 的update方法
core\observer\watcher.js
queueWatcher(watcher)
update 将 当前的watcher 推入queueWatcher队列中
core\observer\watcher.js
update 将 当前的watcher 推入queueWatcher队列中
core\observer\watcher.js
queueWatcher 对于同一属性的只会添加一次
判断watcher的id是否入队去重
使用异步更新nextTick方法准备执行更新watcher
core\observer\scheduler.js
判断watcher的id是否入队去重
使用异步更新nextTick方法准备执行更新watcher
core\observer\scheduler.js
nextTick方法中 没有挂起就执行timerFunc 对微任务进行兼容处理
进入微任务后执行回调方法 flushSchedulerQueue
core\util\next-tick.js
进入微任务后执行回调方法 flushSchedulerQueue
core\util\next-tick.js
Promise
MutationObserver
setImmediate
setTimeout
flushSchedulerQueue
对队列中的id进行排序
之后循环执行队列中的watcher
真正的更新方法watcher.run()
core\observer\scheduler.js
对队列中的id进行排序
之后循环执行队列中的watcher
真正的更新方法watcher.run()
core\observer\scheduler.js
run()
方法里执行get()
get其实是getter
gettter是调用watcher的第二个参数
vm._update(vm._render())
core\observer\watcher.js
方法里执行get()
get其实是getter
gettter是调用watcher的第二个参数
vm._update(vm._render())
core\observer\watcher.js
0 条评论
下一页