Перейти к содержимому

Менеджмент состояния в React без Redux – когда хватает useReducer, useState и useContext

Александр Ламков — Friendly Frontend

0:00 / 0:00

Менеджмент состояния в React без Redux – когда хватает useReducer, useState и useContext

4 094 просмотра · 7 месяцев назад
Александр Ламков — Friendly Frontend
58 тыс. подписчиков
4 094 просмотра · 7 месяцев назад
⚡ Получить весь курс (22 урока) сразу: https://boosty.to/friendly-frontend/p... ✏️ Разберём менеджмент состояния без Redux на примере To Do List: покажу, где у нас живут данные и UI-мелочи, почему разрозненные setTasks в обработчиках опасны (устаревший снимок, лишние ререндеры), и как это чинится. Коротко объясню, что такое useReducer и зачем он нужен именно здесь. Переложим массив задач с useState на useReducer, опишем простые экшены (SET_ALL, ADD, TOGGLE_COMPLETE, DELETE, DELETE_ALL) и заменим setTasks на dispatch в addTask, toggleTaskComplete, deleteTask, deleteAllTasks. Оставим асинхронщину с сервером (tasksAPI) снаружи редьюсера: сначала ответ, потом dispatch. Почистим зависимости useCallback, чтобы обработчики не висели на tasks. Оптимизируем контекст: мемоизируем value в TasksContext через useMemo. Ускорим список: обернём TodoItem в React.memo. В конце зафиксируем простые правила — когда брать useState, когда useContext, и когда подключать небольшой useReducer. Всё — без сторонних библиотек и без ломки существующего кода. ❤️ Ранний доступ к видео и доступ к закрытому чату: https://boosty.to/friendly-frontend 🔴 Timeline: ▶ 00:00 | Введение ▶ 00:39 | Текущее состояние проекта и проблематика ▶ 03:40 | useReducer ▶ 12:48 | Оптимизация контекста ▶ 14:50 | useState, useContext или useReducer – когда что использовать ▶ 17:09 | Заключение 📚 Ссылки из видео: ➖ Код на конец урока: https://github.com/aleksanderlamkov/t... 🧑‍💻 Основной телеграм-канал: https://t.me/AleksanderLamkov 💬 Коммьюнити-чат в телеграме (помощь новичкам): https://t.me/FriendlyFrontend 🗂️ Бесплатные курсы на канале: 🟠 HTML:    • HTML курс 2025   🔵 CSS:    • CSS курс 2025   🟡 JS:    • JavaScript курс 2025   🟢 A11y:    • Accessibility курс 2025   🗺 Frontend Roadmap:    • Frontend Roadmap 2024 | Что должен учить ф...   ⚪️ Мастер-класс по верстке для новичков:    • Адаптивная верстка сайта с нуля для начина...   🔘 Мастер-класс по верстке для продвинутых (БЭМ, SCSS):    • Вёрстка сайта с 0 до результата | HTML, БЭ...   ⚫️ Мастер-класс по верстке с практикой по JavaScript:    • Вёрстка сайта с нуля • HTML, SCSS, JS прак...   🔴 Мастер-класс по верстке на стеке JSX, SCSS, JS, Vite, Minista (SSG), БЭМ: https://stepik.org/a/228315 📌 Автор: ➖ Личный сайт: https://aleksanderlamkov.ru/ ➖ Telegram: https://t.me/AleksanderLamkov ➖ Boosty: https://boosty.to/friendly-frontend ➖ GetMentor: https://getmentor.dev/mentor/aleksand... ➖ Stepik (платные курсы и мастер-классы): https://stepik.org/a/228315 #frontend #фронтенд #react #reactjs