Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Рейтинг: 37.6% · 5 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Ответить
Аватара пользователя
Mom2
Сообщения: 19
Зарегистрирован: 11 май 2026, 03:18

Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение Mom2 »

Включили компилятор (babel-plugin-react-compiler, стабильная ветка 1.x) на боевом проекте: next 15.3, react 19.1, около 1200 компонентов. После пары недель обкатки снесли ручные useMemo/useCallback, штук 350 вышло. Итоги месяца: INP по полевым данным упал с 290 мс до 200 на андроид-середняках, бандл подрос процента на 2-3 из-за сгенеренного кода. Поймали два бага, оба в местах, где мы сами мутировали пропсы. Компилятор такое не прощает и правильно делает.

Вопрос: кто как поступает с библиотечным кодом? У нас своя ui-библиотека, думаю, прогонять её тоже через компилятор или оставить ручную мемоизацию, чтобы не тащить рантайм-зависимость в пакет.
👍3 ❤️ 🔥2 😄 🤔
✔ Лучший ответ сформирован автоматически — nixossmith
Mom2 писал(а):снесли ручные useMemo/useCallback, штук 350 вышло вот это зря так смело. Компилятор молча скипает компоненты, которые нарушают rules of react, без ошибок, просто не оптимизирует. У нас таких было процентов 7, и в них ручная мемоизация всё ещё нужна. Прежде чем сносить, прогоните eslint-plugin-react-hooks шестой версии с компиляторными правилами и гляньте в react devtools: у скомпили…
Перейти к ответу →
Аватара пользователя
Marina_DevOps
Сообщения: 25
Зарегистрирован: 11 май 2026, 05:31

Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение Marina_DevOps »

включили, разницы ноль. потому что до этого два года дрочили перфоманс и мемоизировали всё руками. получается зря дрочили, лол
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
nixossmith
Сообщения: 11
Зарегистрирован: 11 май 2026, 06:43

Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение nixossmith »

✔ Лучший ответ — сформирован автоматически
Mom2 писал(а):снесли ручные useMemo/useCallback, штук 350 вышло
вот это зря так смело. Компилятор молча скипает компоненты, которые нарушают rules of react, без ошибок, просто не оптимизирует. У нас таких было процентов 7, и в них ручная мемоизация всё ещё нужна. Прежде чем сносить, прогоните eslint-plugin-react-hooks шестой версии с компиляторными правилами и гляньте в react devtools: у скомпилированных компонентов бейдж Memo со звёздочкой. Что без бейджа, то компилятор не взял, там удалять руками написанное опасно.
👍 ❤️1 🔥3 😄 🤔
Аватара пользователя
sleepyblueteam
Сообщения: 7
Зарегистрирован: 15 май 2026, 10:38

Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение sleepyblueteam »

в solid и svelte реактивность без этих плясок работает лет пять как. реакт изобрёл проблему, продал её всем, а теперь героически решает компилятором. поздравляю, догнали 2021
👍1 ❤️1 🔥1 😄 🤔1
Аватара пользователя
sergey123
Сообщения: 7
Зарегистрирован: 19 май 2026, 12:10

Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение sergey123 »

опять солид-сектанты в треде, в каждой теме про реакт одно и то же. у заказчиков реакт, у джунов реакт, в вакансиях реакт. всё, дискуссия окончена
👍1 ❤️ 🔥 😄 🤔2
Аватара пользователя
hogan20
Сообщения: 71
Зарегистрирован: 13 май 2026, 12:49

Re: Снесли все useMemo после включения React Compiler. Месяц в проде, делюсь цифрами

Сообщение hogan20 »

Mom2 писал(а):прогонять её тоже через компилятор или оставить ручную мемоизацию, чтобы не тащить рантайм-зависимость в пакет
мы свою либу компилируем и публикуем уже скомпилированный выход. Для потребителей на react 19 рантайм не нужен вообще, для 17-18 есть пакет react-compiler-runtime, он копеечный. Если либа чисто внутренняя и все на 19, вопрос вообще не стоит. Ручную мемоизацию имеет смысл держать, только если у вас пользователи на старье без бандлера, но это уже экзотика.
👍1 ❤️ 🔥 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость