Web/journal
React Compiler GA
React Compiler GA: что мы выбрасываем из кода
← ЖурналWeb6 мин чтения

React Compiler GA: что мы выбрасываем из кода

Команда nordiqdev
студия

React Compiler доехал до GA. Год бета-тестов на одном из наших проектов закончился: компилятор включён по умолчанию во всех новых клиентских репозиториях. Что меняется в повседневной разработке - ниже.

Главное: useMemo и useCallback можно убирать

Компилятор сам мемоизирует вычисления и колбэки. На наших боевых проектах после удаления ручной мемоизации bundle сжался на 3–6% (не катастрофически, но приятно), а количество багов от устаревших замыканий снизилось до нуля.

Чего НЕ делать

  • Не удалять React.memo - он всё ещё имеет смысл для дорогих корневых компонентов.
  • Не убирать key из списков - компилятор не телепат.
  • Не отключать ESLint react-hooks - правила про exhaustive deps всё ещё актуальны.
  • Не пытаться оптимизировать «как раньше» - сначала проверьте, что компилятор уже сделал.

Где компилятор промахивается

Есть класс случаев, когда мутации внешнего стора (Zustand, Valtio) ломают reactivity. Компилятор предполагает иммутабельность пропсов и стейта. На двух проектах пришлось аккуратно завернуть проблемные участки в `// react-compiler-disable`. Это редко, но бывает.

Стоит ли включать на старом проекте

У нас 4 из 6 активных React-проектов уже на компиляторе. На двух оставшихся ждём миграции на React 19. Если вы на React 19 - включайте, риск минимальный, выигрыш есть.

Теги
#react#react compiler#frontend#оптимизация
Студия nordiqdev

Делаем мобильные приложения, веб-сервисы и AI на заказ

Если задача из текста выглядит знакомой и нужна команда, которая соберёт продукт - расскажите подробнее. Вернёмся в течение 24 часов с разбором.