Как React сравнивает два дерева (current и work in progress)? Какой алгоритм используется?

React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.

Короткий ответ

Что ответить на собеседовании

React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.

Подробный разбор

Ответ с пояснениями

React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.

Элементы разных типов заменяются, одинакового типа могут сохранить состояние и обновить props. key помогает сопоставить соседние элементы списка. Fiber организует работу над current и work-in-progress, а изменения DOM применяются в commit; это не обещание оптимального числа операций для любого дерева.

Источник: legacy.reactjs.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее