Найти Π² Π”Π·Π΅Π½Π΅
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

πŸš€ НовыС возмоТности React 19: ΠΊΠΎΠ½Π΅Ρ† эры ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠ²

ОглавлСниС

Новый компилятор React 19 ΠΎΠ±Π΅Ρ‰Π°Π΅Ρ‚ сущСствСнноС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‡Ρ‚ΠΎ станСт настоящим ΠΏΡ€ΠΎΡ€Ρ‹Π²ΠΎΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Но это лишь Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠ° айсбСрга. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ разбСрСмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ компилятор, Π½ΠΎ ΠΈ погрузимся Π² ΠΌΠΈΡ€ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… возмоТностСй React 19.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π΄Ρ€ΡƒΠ·ΡŒΡ! Π― ΠšΠΈΡ€ΠΈΠ»Π» ΠœΡ‹Π»ΡŒΠ½ΠΈΠΊΠΎΠ², Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Usetech. БСгодня Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎ Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… функциях Π² React 19. Π”Π°Π²Π°ΠΉΡ‚Π΅ вмСстС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈΡ… Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° ΠΈ возмоТности Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ! Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΡŽ?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ React

Π­Ρ‚ΠΎ новСйшСС Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ React β€” компилятор, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ транспилятор, примСняСтся Π² React 19. Π’ React 18 ΠΈ Π½ΠΈΠΆΠ΅ использовался транспилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния пСрСрисовывал вСсь ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ, компилятор Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅ΠΌΠΎΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, устраняя Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React. Π”Π°Π²Π°ΠΉΡ‚Π΅ запустим ΠΊΠΎΠ΄ Π² ΠΎΠ±Π΅ΠΈΡ… вСрсиях ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ прСдставляСт собой ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-счСтчик, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счСтчик ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’ Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° функция TimeToRender, которая замСряСт врСмя, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.

На ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² компиляторС, Π° Ρ‚Π°ΠΊΠΆΠ΅ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.

   ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² компиляторС, Π° Ρ‚Π°ΠΊΠΆΠ΅ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°
ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² компиляторС, Π° Ρ‚Π°ΠΊΠΆΠ΅ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ врСмя, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈ использовании транспилятора.

   ВрСмя, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈ использовании транспилятора
ВрСмя, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈ использовании транспилятора

На прСдставлСнном ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ транспилятор выполняСт нСсколько ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈ этом врСмя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€Π° сокращаСтся послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ компилятор выполняСт Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π Π°Π½Π΅Π΅ ΠΌΡ‹ использовали Ρ…ΡƒΠΊΠΈ memo, useMemo() ΠΈ useCallback() для достиТСния ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ эффСкта, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ эти Ρ…ΡƒΠΊΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ. Новый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π½Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ чистый ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

βš›οΈπŸ”„ Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² React 19

НовыС Hooks

Π₯ΡƒΠΊΠΈ β€” это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных особСнностСй React. Они ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ React ΡƒΠΆΠ΅ встроСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания собствСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ…ΡƒΠΊΠΎΠ².

Π’ React 19 Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ…ΡƒΠΊΠ°:

useTransition

React 19 Π²Π½Π΅Π΄Ρ€ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ использования async Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… для управлСния измСнСниями состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ измСнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊ useTransition для обновлСния статуса состояния ΠΈ автоматичСского отобраТСния процСсса оТидания.

Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Π²Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, интСрфСйс Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС асинхронной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ прСдставляСт собой ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ добавляСт Π±ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π² список. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ" происходит ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ 4 сСкунды ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ Π² список. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ автоматичСски ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ состояниСм оТидания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ startTransition().

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ состояниС оТидания остаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ true Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° Π±ΡƒΠΊΠ²Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² список Ρ‡Π΅Ρ€Π΅Π· 4 сСкунды.

   БостояниС оТидания остаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ true Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° Π±ΡƒΠΊΠ²Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² список Ρ‡Π΅Ρ€Π΅Π· 4 сСкунды
БостояниС оТидания остаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ true Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° Π±ΡƒΠΊΠ²Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² список Ρ‡Π΅Ρ€Π΅Π· 4 сСкунды

Π­Ρ‚ΠΎ происходит Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий, Π³Π΄Π΅ Π½Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ состояниСм оТидания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setIsPendingding для установки состояния Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈΠ»ΠΈ false.

useActionState

Π₯ΡƒΠΊ useActionState примСняСтся для управлСния измСнСниями состояния Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ…ΡƒΠΊΡƒ useTransition. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ useActionState позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояния error, action ΠΈ pending Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π°, вмСсто Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ…ΡƒΠΊ useTransition ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ состояниС оТидания.

ΠŸΡƒΡ‚Π΅ΠΌ использования Ρ…ΡƒΠΊΠ° useActionState ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ количСства строк ΠΊΠΎΠ΄Π°.

Π’ прСдставлСнном Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ Ρ…ΡƒΠΊ useActionState ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для автоматичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ состояний error, submitAction ΠΈ isPending Π±Π΅Π· явного опрСдСлСния Ρ‡Π΅Ρ€Π΅Π· useState ΠΈΠ»ΠΈ useTransition для состояний, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… обновлСния, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅.

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

βš›οΈπŸ’₯ React 19 ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ всС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ

useFormStatus

Π₯ΡƒΠΊ useFormStatus прСдоставляСт доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, находится Π»ΠΈ ΠΎΠ½Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использован Ρ…ΡƒΠΊ useFormStatus для доступа ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ оТидания Ρ„ΠΎΡ€ΠΌΡ‹.

Π Π°Π½Π΅Π΅ для доступа ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ оТидания ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ это состояниС ΠΊΠ°ΠΊ пропс. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ состояниС isPending ΠΊΠ°ΠΊ пропс Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CustomButton, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ return.

useOptimistic

Π­Ρ‚ΠΎΡ‚ Ρ…ΡƒΠΊ позволяСт Π½Π°ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ состояния, Π΄Π°ΠΆΠ΅ Π±Π΅Π· оТидания Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ асинхронного дСйствия. НапримСр, Π² Ρ‡Π°Ρ‚-прилоТСниях, ΠΊΠΎΠ³Π΄Π° сообщСниС отправляСтся, ΠΎΠ½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ отобраТаСтся Π² интСрфСйсС Π΄ΠΎ Π΅Π³ΠΎ фактичСской ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ. Часто Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π³Π°Π»ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ доставлСно.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для списка Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ½Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π·Π°Ρ‚Π΅ΠΌ обновляСтся Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС Ρ‡Π΅Ρ€Π΅Π· 4 сСкунды. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ…ΡƒΠΊ useOptimistic для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ отобраТСния Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π² интСрфСйсС Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ 4-сСкундного Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

На Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ дСмонстрируСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π§Π΅Ρ€Π΅Π· 4 сСкунды отобраТаСмая Π·Π°Π΄Π°Ρ‡Π° замСняСтся Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ с сСрвСра.

   МгновСнноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π§Π΅Ρ€Π΅Π· 4 сСкунды отобраТаСмая Π·Π°Π΄Π°Ρ‡Π° замСняСтся Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ с сСрвСра
МгновСнноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π§Π΅Ρ€Π΅Π· 4 сСкунды отобраТаСмая Π·Π°Π΄Π°Ρ‡Π° замСняСтся Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ с сСрвСра

Π Π°Π½Π΅Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΡ‹ использовали Ρ…ΡƒΠΊ useState для управлСния оптимистичным ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΈΡ… дальнСйшСго обновлСния с фактичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ…ΡƒΠΊ useState для добавлСния оптимистичных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ интСрфСйса Π² состояниС optimisticTasks, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-сСттСр setOptimisticTasks для обновлСния этого состояния.

πŸ‘¨β€πŸ’»πŸŽ¨ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅Ρ€Π°

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅Ρ€Π°Β»

Новый API

API use позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ промисы ΠΈ async-await. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ промис, Π° Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ обновляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ промиса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ этот API Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° содСрТатся Π΄Π²Π΅ асинхронныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запросов Π½Π° сСрвСр. ΠŸΠ΅Ρ€Π²Π°Ρ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² послС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² 4 сСкунды, Π° вторая – список Π±Π»ΠΎΠ³ΠΎΠ² послС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² 2 сСкунды. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс обновляСтся этими значСниями.

На Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ дСмонстрируСтся, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс обновляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС промисы Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈΡΡŒ.

   ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс обновляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС промисы Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈΡΡŒ
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс обновляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС промисы Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈΡΡŒ

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ref Π² пропсах

Π’ React 19 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ref ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ forwardRef для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ref ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ref ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°ΠΌΠΈ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пСрСрисовок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ref ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

Π Π°Π½Π΅Π΅ ΠΌΡ‹ использовали forwardRef для опрСдСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° OldRef. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ref, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌΡƒ Π΅ΠΌΡƒ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

React 19 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Ρ‚Π΅Π³ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… прямо Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π±Π΅Π· использования сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ react-helmet. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ обновляСм элСмСнты title ΠΈ meta нСпосрСдствСнно Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ App:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ это Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ react-helmet. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ обновляли элСмСнты title ΠΈ meta Ρ‡Π΅Ρ€Π΅Π· react-helmet:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ для установки элСмСнтов title ΠΈ meta ΠΌΡ‹ использовали ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Helmet ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ react-helmet.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Ошибки Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии React 19 стали Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ многословно ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто дублирования ошибок Π² консоли React 19 пытаСтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅. На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ошибка, возникшая Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ErrorComponent Π² React 18.

   Ошибка, возникшая Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ErrorComponent Π² React 18
Ошибка, возникшая Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ErrorComponent Π² React 18

Π’ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠ°ΠΊ ΠΈ Π² React 19, Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ React 18.

   Ошибка, возникшая Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ErrorComponent Π² React 19
Ошибка, возникшая Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ErrorComponent Π² React 19

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

React 19 прСдставляСт Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠœΡ‹ осмыслили Ρ‚Π°ΠΊΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ компилятор, способный Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, Π½ΠΎΠ²Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….