关于HelloWorld的更新
来源:5-8 组件更新(2)

MeSKiL
2019-11-08
老师。这里我理解的是,App组件先更新,然后执行到对HelloWorld执行prepatch,也就会重新赋值props触发set,这时候将HelloWorld的渲染watcher放入队列里,nexttick执行。
所以相对于App的更新,HelloWorld的更新是在nexttick里的。如果HelloWorld里也有组件,比如叫Header。那么Header是在HelloWorld更新后的nextTick执行的吗。
也就是如果套了10层组件,最后一层的组件更新和App可能差了10个tick
写回答
1回答
-
并不会,仍然会在一个 nextTick 内更新所有子组件,其原因是当最外层的组件开始执行 update 更新的时候,会在 nextTick 执行 flushSchedulerQueue,这个时候内部的 flushing 会设置为 true,之后执行 patch 然后执行 prepatch 更新子组件的时候,会触发子组件的重新渲染,这个时候子组件执行 queueWatcher 的时候,flushing 值为 true,那么就会同步把 queue 插入到当前执行的队列中,同步更新。
012019-11-10
相似问题