Перейти к основному содержимому
Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Примеры

Redux поставляется с несколькими примерами в своём исходном коде. Большинство из них также доступны на CodeSandbox — онлайн-редакторе, позволяющем экспериментировать с примерами прямо в браузере.

Counter на чистом JavaScript

Запустите пример Counter Vanilla:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/counter-vanilla
open index.html

Или откройте песочницу:

Этот пример не требует системы сборки или UI-фреймворка и демонстрирует использование базового Redux API с ES5.

Counter

Запустите пример Counter:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/counter
npm install
npm start

Или откройте песочницу:

Это простейший пример использования Redux с React. Для упрощения перерисовка React-компонентов выполняется вручную при изменении хранилища. В реальных проектах рекомендуется использовать высокопроизводительные привязки React Redux.

Пример включает тесты.

Список задач (Todos)

Запустите пример Todos:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/todos
npm install
npm start

Или откройте песочницу:

Этот пример лучше всего демонстрирует взаимодействие обновлений состояния с компонентами в Redux. Он показывает, как редюсеры могут делегировать обработку действий другим редюсерам, и как с помощью React Redux создавать компоненты-контейнеры на основе презентационных компонентов.

Пример включает тесты.

Список задач с отменой

Запустите пример Todos with Undo:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/todos-with-undo
npm install
npm start

Или откройте песочницу:

Эта вариация предыдущего примера практически идентична ему, но дополнительно показывает, как обёртка редюсера в Redux Undo позволяет добавить функциональность Undo/Redo в приложение всего несколькими строками кода.

TodoMVC

Запустите пример TodoMVC:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/todomvc
npm install
npm start

Или откройте песочницу:

Классический пример TodoMVC. Он приведён для сравнения, но охватывает те же аспекты, что и пример Todos.

Пример включает тесты.

Корзина покупок

Запустите пример Shopping Cart:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/shopping-cart
npm install
npm start

Или откройте песочницу:

В этом примере демонстрируются важные идиоматические шаблоны Redux, которые становятся критичными при росте приложения. В частности, показано:

  • Как хранить сущности в нормализованном виде по их ID
  • Как комбинировать редюсеры на нескольких уровнях
  • Как определять селекторы вместе с редюсерами для инкапсуляции знаний о структуре состояния

Также демонстрируется:

  • Логирование с помощью Redux Logger
  • Условная диспетчеризация действий через middleware Redux Thunk

Иерархическое представление (Tree View)

Запустите пример Tree View:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/tree-view
npm install
npm start

Или изучите в песочнице:

В этом примере показаны:

  • Рендеринг глубоко вложенной древовидной структуры
  • Представление состояния в нормализованной форме для упрощения обновлений из редюсеров
  • Оптимизация производительности рендеринга за счёт точной подписки компонентов только на те узлы дерева, которые они отображают

Пример включает тесты.

Асинхронные операции (Async)

Запустите пример Async:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/async
npm install
npm start

Или изучите в песочнице:

Демонстрируются:

  • Чтение из асинхронного API
  • Загрузка данных по действию пользователя
  • Отображение индикаторов загрузки
  • Кэширование ответов и инвалидация кэша
  • Использование middleware Redux Thunk для инкапсуляции асинхронных побочных эффектов

Универсальное приложение (Universal)

Запустите пример Universal:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/universal
npm install
npm start

Базовый пример серверного рендеринга с использованием Redux и React. Показывает:

  • Подготовку начального состояния хранилища на сервере
  • Передачу состояния клиенту для инициализации клиентского хранилища

Реальный пример (Real World)

Запустите пример Real World:

git clone https://github.com/reduxjs/redux.git

cd redux/examples/real-world
npm install
npm start

Или изучите в песочнице:

Самый продвинутый пример (намеренно насыщенный). Покрывает:

  • Хранение полученных сущностей в нормализованном кэше
  • Кастомное middleware для API-вызовов
  • Рендеринг частично загруженных данных
  • Пагинацию и кэширование ответов
  • Отображение сообщений об ошибках
  • Маршрутизацию
  • Интеграцию с Redux DevTools

Дополнительные примеры

Больше примеров можно найти в разделе Redux Apps and Examples каталога Redux Addons Catalog.