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