Fiber был введен в React начиная с версии 16 в 2017 году. Он позволил увеличить FPS отображения элементов на экране до 60 кадров в секунду. Это переработанный и улучшенный алгоритм согласования (reconciliation) компонентов и обновления DOM-дерева, который разбивает работу на мелкие части (фибры-волокна) в виде дерева односвязного списка, они могут быть приостановлены и возобновлены по мере необходимости.

Основная цель React Fiber - это улучшение производительности React-приложений путем уменьшения времени блокировки главного потока выполнения JavaScript (JavaScript main thread). Это означает, что React может перераспределять ресурсы процессора между фибрами и использовать дополнительные потоки выполнения для выполнения тяжелых задач.

**Планировщик задач

Фибры разбиваются и выполняются по приоритету выполнения. Регулирует приоритетность выполнения работ - планировщик Fiber. Ниже приведены различные типы работ, упорядоченные по приоритету от самого высокого к самому низкому:

  1. Анимация (Animation).
  2. Synchronous (Sync): *Это самый высокий приоритет. Работы синхронного типа выполняются немедленно, не ожидая прерывания или приостановки.
  3. Task: Работы типа Task имеют ниже приоритет, чем синхронные работы. Они представляют асинхронные задачи, такие как обработка сетевых запросов (AJAX), выполнение таймеров или других асинхронных операций.
  4. High Priority: Работы с высоким приоритетом имеют более высокий приоритет, чем работы низкого приоритета, и выполняются после завершения задач и синхронных работ. Этот тип работы может использоваться для обработки важных событий или изменений данных, которые должны быть обновлены немедленно, но не критичны для отзывчивости пользовательского интерфейса.
  5. Normal Priority: Работы типа Normal Priority выполняются после всех задач, синхронных работ и работ с высоким приоритетом. Они представляют типичные задачи перерисовки компонентов и обновления состояния. Большинство обычных операций React выполняются с помощью работ нормального приоритета.
  6. Low Priority: Работы с низким приоритетом имеют наименьший приоритет и выполняются после всех других работ. Они обычно используются для задач, которые не требуют мгновенной обработки и могут быть отложены до более подходящего момента. Например, загрузка данных с сервера, предварительное вычисление или другие несрочные операции могут быть запланированы как работы с низким приоритетом.

Назад