Comments 2
Я правильно понял из статьи что когда произошло обновление то есть после фазы commit, то workInProgressTree становится currentTree ? И так постоянно на каждое обновление DOM или вызов каких то эффектов ?
Я правильно понял из статьи что когда произошло обновление то есть после фазы commit, то workInProgressTree становится currentTree ?
В целом вы правы
Если быть более точным, то finishedWork дерево становится current: root.current = finishedWork. И выполняется эта смена на этапе commit, перед перерисовкой (но думаю это не столь важно, просто нюансы кода React).
И так постоянно на каждое обновление DOM или вызов каких то эффектов ?
Если я правильно понял, то тут ответ: нет. Так происходит постоянно на каждое обновление React в фазе commit. А обновление React может быть вызыванно изменением состояния (setState). Если вы поменяете DOM самостоятельно, без React, то и код React не будет вызван и никакого переприсвоения currentTree соответственно не будет.
React Fiber & Concurrency Part 1 (2)