🧠 The useEffect Mind Virus Must Be Defeated
Почему стоит обновиться на React 19, даже если вы просто делаете SPA:
💡 Проблема: асинхронность и баги
В классическом подходе, как в примере с setTimeout, за 2000мс может произойти что угодно: • Компонент может анмаунтиться. • Могут измениться пропсы. И самое страшное: код в setTimeout этого не узнает.
🛠 Решение: useOptimistic и useTransition
React 19 привносит новые хуки, которые упрощают работу с состояниями: • Транзишины позволяют “задерживать” обновления через промисы, а React берёт на себя координацию. Это устраняет баги, рассинхронизацию UI, мерцания и другие проблемы. • useOptimistic упрощает управление временными состояниями.
🎯 Зачем нужен useOptimistic?
1️⃣ Позволяет использовать await прямо в обработчиках, например, в onClick. 2️⃣ Избавляет от сложностей с состоянием промиса — меньше useState, useEffect и беспорядка в коде. 3️⃣ Обеспечивает только временное обновление интерфейса без создания долгосрочных состояний.
Ключевой инсайт: С переходом на React 19 состояние после завершения транзишина автоматически возвращается к исходному — без лишнего кода и головной боли.
Новый React помогает устранить хаос в асинхронном коде. 🚀