Вот описание ключевых алгоритмов, лежащих в основе React:
1. Алгоритм сравнения
- Алгоритм сравнения имеет решающее значение для эффективности React.
- Когда состояние или реквизиты компонента изменяются, React сравнивает текущий виртуальный DOM с новым виртуальным DOM, используя этот алгоритм.
- Исследуя два дерева узел за узлом сверху вниз, он выявляет различия и обновляет только измененные элементы в фактическом DOM.
- Это целевое обновление сводит к минимуму дорогостоящие манипуляции с DOM, что приводит к повышению производительности.
Но чтобы сделать его более успешным/оптимизированным алгоритмом, нам нужно добавить ключи в элементы списка.
2. Примирение
-
Сверка — это процесс, который React использует для обновления DOM.
- При изменении состояния или свойств компонента React генерирует новый виртуальный DOM и сравнивает его с предыдущим.
- Используя алгоритм сравнения, React вычисляет минимальный набор изменений, необходимый для синхронизации реального DOM с новым виртуальным DOM, обеспечивая эффективные обновления.
3. React Fiber
- React Fiber — это переосмысленная версия алгоритма согласования React, представленного в React 16.
- Основная цель Fiber — обеспечить инкрементный рендеринг, который позволяет разбить работу рендеринга на более мелкие фрагменты и распределить их по нескольким кадрам.
- Эта возможность позволяет React приостанавливать, прерывать или повторно использовать работу по мере поступления новых обновлений, а также назначать приоритет различным типам обновлений, улучшая скорость реагирования.
4. Контекстный API
- Context API решает проблему бурения скважин, обеспечивая обмен данными на всех уровнях приложения React.
- Он использует отношения поставщик-потребитель для передачи данных вниз по дереву компонентов, упрощая управление глобальным состоянием без необходимости передавать реквизиты вручную через каждый уровень.
ПРИМЕЧАНИЕ: - У него есть свои проблемы, более подробную информацию об этом мы добавим в отдельной статье.
Не стесняйтесь обращаться ко мне, если у вас есть какие-либо вопросы/проблемы.