Уточнение по процессу согласования в React: сравнение React элементов и Fiber узлов в work-in-progress и current деревьях

Я пытаюсь разобраться, как именно работает процесс согласования (reconciliation) в React, особенно в части, где происходят обновления и сравнения React элементов с Fiber узлами.

Вот что я понимаю на данный момент:

  • При первичной инициализации React создает дерево React элементов из JSX, а затем строит дерево Fiber узлов, соответствующее каждому элементу.
  • При вызове setState нужный Fiber узел помечается для обновления, и начинается создание work-in-progress дерева. Fiber узлы, которые не изменились, клонируются из текущего дерева, а в компоненте, где вызван setState, генерируется новое дерево React элементов.

Вопросы:

  • Во время процесса сверки (reconciliation) новый React элемент будет сравниваться с Fiber узлом из current дерева, или сначала он обернется в новый Fiber узел, и затем будет происходить сравнение между Fiber узлами из work-in-progress и current деревьев?
  • Также хотелось бы понять, запускается ли процесс сверки только после того, как work-in-progress дерево будет полностью построено, или сверка происходит постепенно по мере создания каждого узла в work-in-progress дереве?

Ответы (0 шт):