Установка¶
Это руководство поможет установить и настроить React Compiler в приложении React.
Вы узнаете
- Как установить React Compiler
- Базовая конфигурация для разных инструментов сборки
- Как проверить, что настройка работает
Требования¶
React Compiler лучше всего работает с React 19, но также поддерживает React 17 и 18. Подробнее о совместимости версий React.
Установка¶
Установите React Compiler как devDependency:
npm install -D babel-plugin-react-compiler@latest
Или с помощью Yarn:
yarn add -D babel-plugin-react-compiler@latest
Или с помощью pnpm:
pnpm install -D babel-plugin-react-compiler@latest
Базовая настройка¶
React Compiler по умолчанию рассчитан на работу без какой-либо конфигурации. Если настроить его всё же нужно в особых случаях (например, чтобы ориентироваться на версии React ниже 19), смотрите справочник параметров компилятора.
Процесс настройки зависит от инструмента сборки. В React Compiler есть плагин Babel, который встраивается в конвейер сборки.
Ловушка
React Compiler должен выполняться первым в конвейере плагинов Babel. Компилятору нужна исходная информация о коде для правильного анализа, поэтому он должен обработать код раньше других преобразований.
Babel¶
Создайте или обновите babel.config.js:
1 2 3 4 5 6 7 | |
Vite¶
Если вы используете Vite с версией 6.0.0 или новее пакета @vitejs/plugin-react, можно использовать reactCompilerPreset:
npm install -D @rolldown/plugin-babel
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Примечание
В @vitejs/[email protected] встроенный параметр Babel убрали. Если вы используете более старую версию, можно сделать так:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Другой вариант: использовать плагин Babel напрямую вместе с @rolldown/plugin-babel:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Next.js¶
Подробности смотрите в документации Next.js.
React Router¶
Установите vite-plugin-babel и добавьте в него плагин Babel компилятора:
npm install vite-plugin-babel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Webpack¶
Загрузчик webpack от сообщества теперь доступен здесь.
Expo¶
Чтобы включить и использовать React Compiler в приложениях Expo, смотрите документацию Expo.
Metro (React Native)¶
React Native использует Babel через Metro, поэтому инструкции по установке смотрите в разделе Использование с Babel.
Rspack¶
Чтобы включить и использовать React Compiler в приложениях Rspack, смотрите документацию Rspack.
Rsbuild¶
Чтобы включить и использовать React Compiler в приложениях Rsbuild, смотрите документацию Rsbuild.
Интеграция с ESLint¶
В React Compiler есть правило ESLint, которое помогает находить код, который нельзя оптимизировать. Если правило ESLint сообщает об ошибке, это значит, что компилятор пропустит оптимизацию этого конкретного компонента или хука. Это безопасно: компилятор продолжит оптимизировать остальные части кодовой базы. Не обязательно исправлять все нарушения сразу. Разбирайтесь с ними в своём темпе, чтобы постепенно увеличивать число оптимизированных компонентов.
Установите плагин ESLint:
npm install -D eslint-plugin-react-hooks@latest
Если вы ещё не настроили eslint-plugin-react-hooks, следуйте инструкциям по установке в readme. Правила компилятора доступны в пресете recommended-latest.
Правило ESLint будет: - Находить нарушения Правил React - Показывать, какие компоненты нельзя оптимизировать - Давать полезные сообщения об ошибках, чтобы исправить проблемы
Проверьте настройку¶
После установки проверьте, что React Compiler работает правильно.
Проверка React DevTools¶
Компоненты, оптимизированные React Compiler, показывают значок «Memo ✨» в React DevTools:
- Установите расширение браузера React Developer Tools
- Откройте приложение в режиме разработки
- Откройте React DevTools
- Найдите эмодзи ✨ рядом с именами компонентов
Если компилятор работает: - У компонентов в React DevTools будет значок «Memo ✨» - Дорогие вычисления будут мемоизироваться автоматически - Ручной useMemo не нужен
Проверка результата сборки¶
Убедиться, что компилятор работает, можно и по результату сборки. В скомпилированном коде появится логика автоматической мемоизации, которую компилятор добавляет сам.
1 2 3 4 5 6 7 8 9 10 11 12 | |
Устранение неполадок¶
Исключение отдельных компонентов¶
Если после компиляции компонент вызывает проблемы, его можно временно исключить директивой "use no memo":
1 2 3 4 | |
Это говорит компилятору пропустить оптимизацию этого конкретного компонента. Нужно исправить исходную проблему и убрать директиву, когда она будет решена.
Дополнительная помощь по неполадкам — в руководстве по отладке.
Следующие шаги¶
Теперь, когда React Compiler установлен, узнайте больше о следующем:
- Совместимость версий React для React 17 и 18
- Параметры конфигурации, чтобы настроить компилятор
- Стратегии постепенного внедрения для существующих кодовых баз
- Приёмы отладки, чтобы разбирать проблемы
- Руководство по компиляции библиотек, чтобы скомпилировать библиотеку React
Источник — https://react.dev/learn/react-compiler/installation