Обзоры новостей и статей из мира frontend, интересные кейсы, исследования и мысли вслух
https://github.com/SuperOleg39
https://twitter.com/ODrapeza
@SuperOleg39
Post #181
1.95K
Парочка интересных кейсы из беты React 19, которые особо не освещались:
- Прощай useIsomorphicLayoutEffect, больше нет варнинга на сервере - https://github.com/facebook/react/pull/26395
- Если вы используете throw promise или либы с поддержкой Suspense, в рамках одного Suspense загрузка данных в параллельных компонентах начнет происходить последовательно - https://github.com/facebook/react/pull/26380
Пример кода где будет водопад запросов при использовании условного useSuspenseQuery:
В релизе очень порадовало улучшение ошибок гидрации, и централизованная обработка ошибок Error Boundaries.
Также я никак не пойму в какой версии удалили или удалят 421 ошибку гидрации - https://github.com/facebook/react/issues/24959#issuecomment-1317309116
Ошибка происходит при ререндере Suspense компонента, поддерево которого не завершило гидрацию, и приводит к деоптимизации - клиентский рендер вместо гидрации.
Очень легко словить такую ошибку используя useSyncExternalStore.
Потратил часы на разборы таких ошибок, а ситуация в итоге странная - ошибку выпиливают, а деоптимизация остаётся.
Наверное мне стоило более тщательно подойти к замеру разницы в перформансе при деоптимизации, может проблема и не такая значительная, раз ее просто можно заглушить?
GitHub Remove layout effect warning on the server by rickhanlonii · Pull Request #26395 · facebook/react Overview
This PR unfortunately removes the warning emitted when using layout effects on the server:
useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server... - Прощай useIsomorphicLayoutEffect, больше нет варнинга на сервере - https://github.com/facebook/react/pull/26395
- Если вы используете throw promise или либы с поддержкой Suspense, в рамках одного Suspense загрузка данных в параллельных компонентах начнет происходить последовательно - https://github.com/facebook/react/pull/26380
Пример кода где будет водопад запросов при использовании условного useSuspenseQuery:
const Root = () => {
return <>
<Suspense>
<CmpWithUseSuspenseQuery />
<CmpWithUseSuspenseQuery />
</Suspense>
</>
}В релизе очень порадовало улучшение ошибок гидрации, и централизованная обработка ошибок Error Boundaries.
Также я никак не пойму в какой версии удалили или удалят 421 ошибку гидрации - https://github.com/facebook/react/issues/24959#issuecomment-1317309116
Ошибка происходит при ререндере Suspense компонента, поддерево которого не завершило гидрацию, и приводит к деоптимизации - клиентский рендер вместо гидрации.
Очень легко словить такую ошибку используя useSyncExternalStore.
Потратил часы на разборы таких ошибок, а ситуация в итоге странная - ошибку выпиливают, а деоптимизация остаётся.
Наверное мне стоило более тщательно подойти к замеру разницы в перформансе при деоптимизации, может проблема и не такая значительная, раз ее просто можно заглушить?
- 👍 14
- 🔥 1











