TGViewer
React React @react_lib · 2.66K subscribers
Post #16 3.08K
Реальный пример работы startTransition

Ricky Hanlon показал подробный пример работы API startTransition из React 18, с объяснением работы API и того, как работает приложение в perfomance профиле.   

В примере показан слайдер и компонент с «тяжелыми вычислениями», который занимает много времени для рендера, особенно на слабых устройствах. После изменения значения слайдера происходил ререндер тяжелого компонента. Самый оптимальный вариант рендера тяжелого компонента в React 17 через debounce, т.е. откладывая рендер на изменения слайдера. 

В React 18 изменение значения слайдера достаточно обернуть в startTransition, и React уже сам выполнит эффективный рендер компонента. После рендера изменения значения слайдера, React рендерит transition результатов. Так как в этом изменение включен параллельный рендеринг, React делает три новые вещи:
- Yielding: каждые 5 мс React ставит работу рендера на паузу, чтобы дать браузеру сделать другую работу, например запустить промисы. 
- Прерывание: React ставит рендер на паузу, если необходимо отрендерить более приоритетный компонент, например ползунок слайдера из примера.
- Отбрасывание старых результатов: когда React начинает рендерить после прерывания, то он отбрасывает старый компонент и рендерит новый.

https://github.com/reactwg/react-18/discussions/65

✍️ @React_lib
GitHub Real world example: adding startTransition for slow renders · reactwg react-18 · Discussion #65 In React 18 we announced a new startTransition API and shared a high-level overview of the problem it solves. In this post, we’re going to dive into a real-world example of speeding up a slow updat...
  • 👍 1
More from @react_lib
  1. Oct 2, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
  2. Sep 30, 2026Сегодня покажу вам, как в React удобно работать с формами на базе react-hook-form. Это мой…
  3. Sep 29, 2026Как сделать loader с задержкой, чтобы не мигал? Иногда при загрузке данных хочется показат…
  4. Sep 11, 2026🚨 Избегай монолитных компонентов, которые объединяют в себе отображение, управление состо…
  5. Sep 7, 2026❌ Избегайте использования нескольких переменных состояния для отслеживания статуса. ✅ Вмес…
  6. Aug 31, 2026Сегодня написал пост на тему, которая регулярно бьёт по скорости разработки: почему React-…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →