Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Ресурсы для изучения
Документация Redux предназначена для изучения базовых концепций Redux и объяснения ключевых принципов использования в реальных приложениях. Однако она не может охватить всё. К счастью, существует множество других отличных ресурсов для изучения Redux. Мы рекомендуем вам ознакомиться с ними. Многие из них раскрывают темы, выходящие за рамки документации, или объясняют те же концепции другими способами, которые могут лучше подойти вашему стилю обучения.
На этой странице представлены наши рекомендации по лучшим внешним ресурсам для изучения Redux. Дополнительный обширный список руководств, статей и других материалов по React, Redux, JavaScript и смежным темам вы найдёте в списке React/Redux Links.
Базовые введения
Руководства, объясняющие базовые концепции Redux и его использование
-
Введение в React, Redux и TypeScript
https://blog.isquaredsoftware.com/2020/12/presentations-react-redux-ts-intro/
Презентация сопровождающего Redux Марка Эриксона, охватывающая основы React, Redux и TypeScript. Темы по Redux включают хранилища (stores), редьюсеры (reducers), промежуточное ПО (middleware), React-Redux и Redux Toolkit. -
Изучаем современный Redux - Redux Toolkit, React-Redux Hooks и RTK Query
https://www.learnwithjason.dev/let-s-learn-modern-redux
Эпизод шоу "Learn with Jason" с участием сопровождающего Redux Марка Эриксона. В эпизоде демонстрируется разработка приложения в реальном времени: создание нового проекта React+TS, добавление пакетов Redux, настройка Redux Toolkit и React-Redux с нуля (включая рекомендованную конфигурацию хуков для TypeScript). Также показано использование API для получения данных RTK Query и отображение этих данных в интерфейсе. -
Руководство по Redux: Обзор и пошаговое объяснение
https://www.taniarascia.com/redux-react-guide/
Качественное руководство от Тани Рашиа, которое кратко объясняет ключевые концепции Redux и показывает, как собрать базовое приложение Redux + React с использованием чистого Redux и Redux Toolkit. -
Redux для начинающих - Понятное руководство по изучению Redux
https://www.freecodecamp.org/news/redux-for-beginners-the-brain-friendly-guide-to-redux/
Простое для понимания руководство по созданию небольшого приложения для списка дел с использованием Redux Toolkit и React-Redux, включая получение данных. -
Redux становится проще с Redux Toolkit и TypeScript
https://www.mattbutton.com/redux-made-easy-with-redux-toolkit-and-typescript/
Полезное руководство, демонстрирующее совместное использование Redux Toolkit и TypeScript для написания приложений на Redux, а также показывающее, как RTK упрощает типичное использование Redux. -
Redux: От хайпа в Twitter до продакшена
https://slides.com/jenyaterpil/redux-from-twitter-hype-to-production#/
Качественная презентация, визуально разбирающая основные концепции Redux, использование с React, организацию проекта и побочные эффекты с thunks и sagas. Содержит анимированные диаграммы, демонстрирующие поток данных в архитектуре React+Redux.
Использование Redux с React
Объяснения библиотеки связок React-Redux
-
Модернизация legacy-приложения Redux с помощью хуков React-Redux
https://app.egghead.io/playlists/modernizing-a-legacy-redux-application-with-react-hooks-c528
Серия видео, показывающих различия между старым APIconnectи новым API хуков React-Redux, а также их использование в компонентах. -
Зачем использовать Redux в React-приложениях
https://www.fullstackreact.com/articles/redux-with-mark-erikson/
Объяснение преимуществ использования Redux с React, включая обмен данными между компонентами и горячую перезагрузку модулей.
Проектные руководства
Руководства, объясняющие концепции Redux через создание проектов, включая более сложные приложения, приближенные к реальным
- Practical Redux
https://blog.isquaredsoftware.com/2016/10/practical-redux-part-0-introduction/
https://blog.isquaredsoftware.com/series/practical-redux/
Постоянно обновляемая серия статей, демонстрирующая различные техники Redux на примере создания приложения, основанного на MekHQ для управления кампаниями в Battletech. Автор — со-мейнтейнер Redux Марк Эриксон. Рассматриваются темы: управление реляционными данными, подключение множества компонентов и списков, сложная логика редьюсеров для фич, работа с формами, отображение модальных окон и многое другое. (Примечание: это более старая серия, сегодня мы рекомендуем более новые паттерны для написания Redux-кода. Однако многие принципы из этой серии остаются ценными.)
Реализация Redux
Объяснение внутренней работы Redux через создание минималистичных реплик
-
Getting Started with Redux - Video Series
https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867
https://github.com/tayiorbeii/egghead.io_redux_course_notes
Дэн Абрамов, создатель Redux, объясняет различные концепции в 30 коротких (2-5 минут) видео. Приложенный репозиторий на Github содержит заметки и расшифровки видео. -
Building React Applications with Idiomatic Redux - Video Series
https://egghead.io/courses/building-react-applications-with-idiomatic-redux
https://github.com/tayiorbeii/egghead.io_idiomatic_redux_course_notes
Вторая серия видеоуроков Дэна Абрамова, продолжающая первую. Рассматривает: начальное состояние хранилища, использование Redux с React Router, функции-селекторы, нормализацию состояния, middleware Redux, асинхронные создатели действий и другое. Приложенный репозиторий содержит заметки и расшифровки. -
Live React: Hot Reloading and Time Travel
https://youtube.com/watch?v=xsSnOQynTHs
Оригинальный доклад Дэна Абрамова, представивший Redux. Узнайте, как ограничения Redux упрощают горячую перезагрузку с путешествием во времени. -
Build Yourself a Redux
https://zapier.com/engineering/how-to-build-redux/
Глубокое руководство по созданию "мини-Redux", раскрывающее не только ядро Redux, но и реализациюconnectи middleware. -
Connect.js explained
https://gist.github.com/gaearon/1d19088790e70ac32ea636c025ba424e
Упрощённая версия функцииconnect()из React Redux, иллюстрирующая базовую реализацию. -
Let's Write Redux!
https://www.jamasoftware.com/blog/lets-write-redux/
Пошаговое создание минималистичной версии Redux для объяснения концепций и реализации.
Редюсеры
Статьи о подходах к написанию функций-редьюсеров
-
Taking Advantage of
combineReducers
https://randycoulman.com/blog/2016/11/22/taking-advantage-of-combinereducers/
Примеры многократного использованияcombineReducersдля построения дерева состояния и анализ компромиссов разных подходов к логике редьюсеров. -
The Power of Higher-Order Reducers
https://slides.com/omnidan/hor#/
Презентация автора redux-undo и других библиотек, объясняющая концепцию редьюсеров высшего порядка и их применение. -
Reducer composition with Higher Order Reducers
https://medium.com/@mange_vibration/reducer-composition-with-higher-order-reducers-35c3977ed08f
Отличные примеры создания небольших функций, которые можно композировать для решения сложных задач в редьюсерах: установка начального состояния, фильтрация, обновление конкретных ключей и др. -
Higher Order Reducers - Это не так страшно, как кажется
https://medium.com/@danielkagan/high-order-reducers-it-just-sounds-scary-2b9e5dbfc705
Объясняет, как редьюсеры можно компоновать подобно Lego-кирпичикам для создания переиспользуемой и тестируемой логики.
Селекторы
Объяснения как и зачем использовать функции-селекторы для чтения значений из состояния
-
Идиоматичный Redux: Использование селекторов Reselect для инкапсуляции и производительности
https://blog.isquaredsoftware.com/2017/12/idiomatic-redux-using-reselect-selectors/
Полное руководство о важности функций-селекторов в Redux, использовании библиотеки Reselect для написания оптимизированных селекторов и продвинутых техниках повышения производительности. -
ReactCasts #8: Селекторы в Redux
https://www.youtube.com/watch?v=frT3to2ACCw
Отличный обзор причин и способов использования функций-селекторов для получения данных из хранилища и вычисления производных данных. -
Оптимизация разработки React-Redux приложений с помощью Reselect
https://codebrahma.com/reselect-tutorial-optimizing-react-redux-application-development-with-reselect/
Хороший туториал по Reselect. Раскрывает концепцию "функций-селекторов", использование API Reselect и применение мемоизированных селекторов для улучшения производительности. -
Использование Reselect в React-Redux приложениях
https://dashbouquet.com/blog/frontend-development/usage-of-reselect-in-a-react-redux-application
Обсуждает важность мемоизированных селекторов для производительности и лучшие практики использования Reselect. -
React, Reselect и Redux
https://medium.com/@parkerdan/react-reselect-and-redux-b34017f8194c
Объясняет полезность мемоизированных селекторов Reselect в Redux-приложениях и создание уникальных экземпляров селекторов для каждого компонента.
Нормализация
Как структурировать Redux-хранилище подобно базе данных для оптимальной производительности
-
Запросы к Redux-хранилищу
https://medium.com/@adamrackis/querying-a-redux-store-37db8c7f3b0f
Обзор лучших практик организации и хранения данных в Redux, включая нормализацию данных и использование функций-селекторов. -
Нормализация Redux-хранилищ для максимального переиспользования кода
https://medium.com/@adamrackis/normalizing-redux-stores-for-maximum-code-reuse-ae6e3844ae95
Размышления о том, как нормализованные Redux-хранилища позволяют реализовать полезные подходы к обработке данных, с примерами денормализации иерархических данных через селекторы. -
Продвинутая нормализация сущностей в Redux
https://medium.com/@dcousineau/advanced-redux-entity-normalization-f5f1fe2aefc5
Описывает концепцию "keyWindow" для отслеживания подмножеств сущностей в состоянии, аналогично SQL "представлению". Полезное расширение идеи нормализованных данных.
Middleware
Объяснения и примеры работы middleware и их создания
-
Исследуем Redux Middlewares
https://blog.krawaller.se/posts/exploring-redux-middleware/
Понимание middleware через серию небольших экспериментов. -
Туториал по Redux Middleware
https://github.com/pshrmn/notes/blob/master/redux/redux-middleware.md
Обзор концепции middleware, работыapplyMiddlewareи создания собственных middleware. -
ReactCasts #6: Redux Middleware
https://www.youtube.com/watch?v=T-qtHI1qHIg
Скринкаст о роли middleware в Redux, их применении и реализации кастомных middleware. -
A Beginner's Guide to Redux Middleware
https://www.codementor.io/reactjs/tutorial/beginner-s-guide-to-redux-middleware
Полезное объяснение сценариев использования middleware с многочисленными примерами. -
Functional Composition in Javascript
https://joecortopassi.com/articles/functional-composition-in-javascript/
Подробный разбор принципа работы функцииcompose.
Побочные эффекты - основы
Введение в обработку асинхронного поведения в Redux
-
Stack Overflow: Dispatching Redux Actions with a Timeout
https://stackoverflow.com/questions/35411423/how-to-dispatch-a-redux-action-with-a-timeout/35415559#35415559
Дэн Абрамов объясняет основы управления асинхронным поведением в Redux, демонстрируя прогрессивные подходы (встроенные асинхронные вызовы, асинхронные создатели действий, middleware thunk). -
Stack Overflow: Why do we need middleware for async flow in Redux?
https://stackoverflow.com/questions/34570758/why-do-we-need-middleware-for-async-flow-in-redux/34599594#34599594
Дэн Абрамов объясняет причины использования thunk и асинхронного middleware, а также полезные паттерны работы с thunk. -
What the heck is a "thunk"?
https://daveceddia.com/what-is-a-thunk/
Краткое объяснение термина "thunk" в общем контексте и применительно к Redux. -
Thunks in Redux: The Basics
https://medium.com/fullstack-academy/thunks-in-redux-the-basics-85e538a3fe60
Подробный разбор концепции thunk: что это, какие проблемы решает и как использовать.
Побочные эффекты - продвинутый уровень
Продвинутые инструменты и техники управления асинхронным поведением
-
What is the right way to do asynchronous operations in Redux?
https://decembersoft.com/posts/what-is-the-right-way-to-do-asynchronous-operations-in-redux/
Отличный обзор популярных библиотек для работы с побочными эффектами в Redux, включая сравнение их работы. -
Redux 4 Ways
https://medium.com/react-native-training/redux-4-ways-95a130da0cdc
Сравнение реализации базового получения данных с использованием thunks, sagas, observables и promise middleware. -
Idiomatic Redux: Thoughts on Thunks, Sagas, Abstractions, and Reusability
https://blog.isquaredsoftware.com/2017/01/idiomatic-redux-thoughts-on-thunks-sagas-abstraction-and-reusability/
Ответ на критические замечания о thunk с аргументацией, что thunk (и sagas) остаются валидными подходами для управления сложной синхронной логикой и асинхронными побочными эффектами. -
Javascript Power Tools: Redux-Saga
https://formidable.com/blog/2017/javascript-power-tools-redux-saga/
https://formidable.com/blog/2017/composition-patterns-in-redux-saga/
https://formidable.com/blog/2017/real-world-redux-saga-patterns/
Фантастическая серия статей, объясняющая концепции, реализацию и преимущества Redux-Saga, включая использование генераторов ES6 для управления потоком функций, композиции саг для конкурентности и практические кейсы применения. -
Exploring Redux Sagas
https://medium.com/onfido-tech/exploring-redux-sagas-cc1fca2015ee
Отличная статья о том, как использовать саги в качестве связующего слоя для реализации слабосвязанной бизнес-логики в Redux-приложении. -
Укрощение Redux с помощью саг
https://objectpartners.com/2017/11/20/taming-redux-with-sagas/
Хороший обзор Redux-Saga, включая информацию о функциях-генераторах, случаях использования саг, работе с промисами и тестировании саг. -
Реактивное состояние Redux с RxJS
https://ivanjov.com/reactive-redux-state-with-rxjs/
Описание концепции "Реактивного программирования" и библиотеки RxJS с примерами использования redux-observable для получения данных и тестирования. -
Использование redux-observable для асинхронной логики в Redux
https://medium.com/dailyjs/using-redux-observable-to-handle-asynchronous-logic-in-redux-d49194742522
Подробное сравнение реализации обработки примера с отрисовкой линий через thunks и через observables.
Философия Redux
Глубокий анализ принципов работы Redux и его предназначения
- Когда (и когда не) стоит использовать Redux
https://changelog.com/posts/when-and-when-not-to-reach-for-redux
Разработчик Redux Марк Эриксон объясняет проблемы, для решения которых создавался Redux, и сравнивает его с другими популярными инструментами.
-
Вам, возможно, не нужен Redux
https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367
Обсуждение Дэна Абрамова компромиссов при использовании Redux. -
Идиоматичный Redux: Дао Redux, Часть 1 - Реализация и замысел
https://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-1/
Глубокое погружение в принципы работы Redux, ограничения, которые он накладывает, и замысел его дизайна. -
Идиоматичный Redux: Дао Redux, Часть 2 - Практика и философия
https://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-2/
Анализ причин существования распространённых шаблонов Redux, альтернативных подходов к его использованию и их плюсов/минусов. -
Что такого особенного в Redux?
https://medium.freecodecamp.org/whats-so-great-about-redux-ac16f1cc0f8b
Глубокий анализ сравнения Redux с ООП и передачей сообщений, критическое рассмотрение шаблонов использования и аргументы в пользу высокоуровневых абстракций.
Архитектура Redux
Паттерны и практики структурирования крупных приложений на Redux
-
Избегание непреднамеренной сложности при проектировании состояния приложения
https://hackernoon.com/avoiding-accidental-complexity-when-structuring-your-app-state-6e6d22ad5e2a
Отличное руководство по организации структуры хранилища Redux. -
Redux шаг за шагом: Простой и надёжный workflow для реальных приложений
https://hackernoon.com/redux-step-by-step-a-simple-and-robust-workflow-for-real-life-apps-1fdf7df46092
Продолжение статьи о "Непреднамеренной сложности", обсуждающее принципы -
То, что я хотел бы знать о Redux
https://medium.com/horrible-hacks/things-i-wish-i-knew-about-redux-9924abf2f9e0
https://www.reddit.com/r/javascript/comments/4taau2/things_i_wish_i_knew_about_redux/
Ценные советы и уроки, полученные при разработке приложения с Redux. Включает подключение компонентов, выбор данных и структуру проекта. Дополнительное обсуждение на Reddit. -
React+Redux: Советы и лучшие практики для чистого, надёжного и поддерживаемого кода
https://speakerdeck.com/goopscoop/react-plus-redux-tips-and-best-practices-for-clean-reliable-and-scalable-code
Отличная презентация с разнообразными советами: поддержание простоты action creators, обработка данных в reducers, абстрагирование API-вызовов, избегание распространения пропсов и другие. -
Redux для управления состоянием в крупных веб-приложениях
https://blog.mapbox.com/redux-for-state-management-in-large-web-apps-c7f3fab3ce9b
Подробный разбор идиоматичной архитектуры Redux с примерами её применения в приложении Mapbox Studio.
Приложения и примеры
-
React-Redux RealWorld Example: TodoMVC для реального мира
https://github.com/GoThinkster/redux-review
Полноценное "реальное" приложение на Redux. Демонстрирует блог-платформу типа Medium с JWT-аутентификацией, CRUD, лайками статей, подписками, роутингом и другими функциями. Проект RealWorld включает другие реализации для сравнения подходов. -
Проект Mini-Mek
https://github.com/markerikson/project-minimek
Демонстрационное приложение с полезными техниками Redux, созданное в рамках серии статей "Practical Redux": https://blog.isquaredsoftware.com/series/practical-redux -
react-redux-yelp-clone
https://github.com/mohamed-ismat/react-redux-yelp-clone
Адаптация приложения "Yelp Clone" с использованием Redux и Redux Saga вместо локального состояния, React Router v4, styled-components и других современных инструментов. -
WordPress-Calypso
https://github.com/Automattic/wp-calypso
Новая версия WordPress.com на JavaScript и API -
Sound-Redux
https://github.com/andrewngu/sound-redux
Клиент Soundcloud на React/Redux -
Webamp
https://webamp.org
https://github.com/captbaritone/webamp
Браузерная версия Winamp2 на React/Redux. Воспроизводит MP3 и поддерживает загрузку локальных файлов. -
Tello
https://github.com/joshwcomeau/Tello
Удобный трекер сериалов -
io-808
https://github.com/vincentriemer/io-808
Веб-версия драм-машины TR-808
Переводы документации Redux
-
中文文档 — Китайский
-
繁體中文文件 — Традиционный китайский
-
Документация Redux на русском — Русский
-
Redux en Español - Испанский
-
Redux на корейском - корейский язык
Книги
-
Redux на практике
https://www.manning.com/books/redux-in-action
Всеобъемлющая книга, охватывающая ключевые аспекты использования Redux: основы редюсеров и действий, интеграцию с React, сложные middleware и побочные эффекты, структуру приложений, производительность, тестирование и многое другое. Отлично объясняет плюсы, минусы и компромиссы различных подходов к использованию Redux. Лично рекомендована со-сопровождающим Redux Марком Эриксоном. -
Полное руководство по Redux
https://leanpub.com/redux-book
Как управлять большим состоянием в продакшене? Зачем нужны store enhancers? Как лучше всего обрабатывать валидацию форм? Ответы на эти и многие другие вопросы с простыми объяснениями и примерами кода. Освойте всё необходимое для создания сложных production-готовых веб-приложений на Redux. (Примечание: теперь постоянно бесплатно!) -
Управление состоянием в React
https://www.robinwieruch.de/learn-react-redux-mobx-state-management/
Идеальное продолжение книги автора "The Road to learn React". Вы начнёте с изучения Redux без React, затем научитесь подключать Redux к React-приложению. Продвинутые главы охватывают нормализацию, именование, селекторы и асинхронные действия. В финале вы создадите реальное приложение с React и Redux.
Курсы
-
Современный React с Redux от Stephen Grider (платный)
https://www.udemy.com/react-redux/
Освойте основы React и Redux, создавая приложения с React Router, Webpack и ES2015. Курс быстро введёт в тему и даст глубокое понимание создания React-компонентов и структурирования приложений с Redux. -
Redux от Tyler McGinnis (платный)
https://tylermcginnis.com/courses/redux/
Изучайте Redux в контексте достаточно крупного приложения, чтобы увидеть все преимущества. Этот курс — "Redux в реальном мире". Вы построите production-приложение, охватывающее оптимистичные обновления, обработку ошибок, интеграцию с Firebase и CSS Modules. -
Изучаем Redux от Wes Bos (бесплатно)
https://learnredux.com/
Видеокурс по созданию фото-приложения "Reduxstagram", раскрывающий ключевые идеи Redux, React Router и React.js.
Дополнительные ресурсы
-
React-Redux Links — каталог качественных статей и туториалов по React, Redux и ES2015.
-
Redux Ecosystem Links — тематическая подборка библиотек, аддонов и утилит для Redux.
-
Awesome Redux — обширный список репозиториев, связанных с Redux.
-
DEV Community — площадка для обсуждения проектов, статей и туториалов по Redux. Приветствуются разработчики любого уровня.