イベント単位のレンダリング
木構造を作成する。
トラバースの方法自体は実装の詳細なので別に言わなくていいか.child, .child, sibling,
lane, イベントが起きたらlaneがたつ
laneが立っていなかったらどうなるのか
yieldするとメインスレッドを明け渡す
更新部分だけレンダリングするのはどこから?
Fiberがあって、
実装は後、概念が前。
code:js
while (workInProgress && !shouldYield()) {
const next = beginWork(workInProgress)
if(next === null) {
workInProgress = workInProgress.sibling || workInProgress.return;
}
}
コンポーネントなどの単位でレンダリング。
yield でブラウザイベントをハンドリング
code:js
function workLoopConcurrent() {
// Perform work until Scheduler asks us to yield
while (workInProgress !== null && !shouldYield()) {
performUnitOfWork(workInProgress);
}
}
木構造
yield
child, sibling, return
メモ化
nullが返る→completeWork
laneの判定