Обновить

⚛️ React 19 — useOptimistic

useOptimistic — новый хук, который позволяет отобразить “оптимистичное” состояние. Оно называется “оптимистичным”, потому что мы надеемся, что запрос не свалится с ошибкой и после его выполнения состояние будет выглядеть именно так.

❓Как используется

  • В useOptimistic передаётся реальное состояние и функцию-reducer

  • Компонент использует “оптимистичное” состояние для рендера

  • Перед выполнением запроса обновляется “оптимистичное” состояние

  • Когда запрос завершился, нужно обновить реальное состояние

  • Как только реальное состояние обновилось, оптимистичное состояние обновится автоматически, так как оно передано в useOptimistic первым параметром.

  • Если запрос упал с ошибкой, нужно откатить изменения в оптимистичном состоянии.

ℹ️ Первый вопрос, которым я задался, а в чём отличие от обычного setState, путём экспериментов, вот что удалось найти:

  • useOptimistic работает с формами. Работать с обычной кнопкой в SPA мне не удалось, обновление происходило только после завершения запроса

  • useOptimistic работает только внутри асинхронного обработчика, что логично. Если убрать async/await, обновление произойдёт только после завершения запроса

  • Параметр в useState используется только для инициализации, и игнорируется в последующих рендерах. useOptimistic будет сихронизироваться со значением со значением переданным первым параметром.

В любом случае, пока useOptimistic выглядит каким-то низкоуровневым API. Надеюсь скоро появится больше Best Practices.

https://t.me/cherkashindev/184

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии7
ЕЖЕДНЕВНЫЙ ХАБР | 6 АВГ 2026
Охват11K

Как я воевал с Яндексом и решил проблему «мертвых душ» на диске

Статья посвящается недавнему сомнительному решению Яндекса уменьшить объём своего диска и жестоко покарать всех, кто посмел: впихнуть невпихуемое, не удалить старые файлы или просто не суметь разобраться в их «гениальном» интерфейсе и удалить снимки, которые не подчиняются абстракции файлов вообще. Ваш покорный слуга создаёт расширение, которое позволяет решить проблему. На превью то, кем он себя видит: грозным защитником угнетённых бабуль из бухгалтерии, в клетчатой рубашке инженера и с волшебным мечом.

Как я воевал с Яндексом и решил проблему «мертвых душ» на диске

Публикации