React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.
Как React сравнивает два дерева (current и work in progress)? Какой алгоритм используется?
React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
React использует эвристическую reconciliation по типам элементов и ключам, а не ищет минимальную разницу произвольных деревьев.
Элементы разных типов заменяются, одинакового типа могут сохранить состояние и обновить props. key помогает сопоставить соседние элементы списка. Fiber организует работу над current и work-in-progress, а изменения DOM применяются в commit; это не обещание оптимального числа операций для любого дерева.
Источник: legacy.reactjs.org.