Spec-Zone.ru › Redux 3

Redux FAQ: Общие вопросы

Содержание

  • Когда использовать Redux?
  • Можно ли использовать Redux только с React?
  • Нужен ли особый инструмент сборки для использования Redux?

Общие вопросы

Когда следует использовать Redux?

Пит Хат, один из ранних авторов React, говорит:

Вы поймёте, когда вам понадобится Flux. Если вы не уверены, вам он не нужен.

Аналогично, Дан Абрамов, один из создателей Redux, говорит:

Я хотел бы внести поправку: не используйте Redux, пока у вас не возникнут проблемы с обычным React.

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

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

Это часто является источником жалоб на «избыточный код». Эти ограничения требуют усилий со стороны разработчика, но также открывают ряд дополнительных возможностей (таких как сохранение состояния и синхронизация).

Если вы только учите React, вы, вероятно, должны сконцентрироваться на мышлении в терминах React, а затем рассмотреть Redux, когда вы лучше поймёте React и как Redux может вписаться в ваше приложение.

В конечном счёте, Redux — всего лишь инструмент. Это отличный инструмент, и есть веские причины его использования, но есть и причины, по которым вы можете не захотеть его использовать. Принимайте обоснованные решения о своих инструментах и понимайте компромиссы, связанные с каждым решением.

Дополнительная информация

Документация

  • Введение: Мотивация

Статьи

  • React How-To
  • Возможно, вам не нужен Redux
  • Аргументы в пользу Flux
  • Некоторые причины, почему Redux полезен в приложении React

Обсуждения

  • Твиттер: Не используйте Redux, пока...
  • Твиттер: Redux предназначен для предсказуемости, а не краткости
  • Твиттер: Redux полезен для устранения глубокой передачи свойств
  • Твиттер: Не используйте Redux, пока вас не устраивает состояние локального компонента
  • Твиттер: Вам не нужен Redux, если ваши данные никогда не меняются
  • Твиттер: Если ваш редьюсер выглядит скучно, не используйте Redux
  • Reddit: Вам не нужен Redux, если ваше приложение просто извлекает что-то на одной странице
  • Stack Overflow: Зачем использовать Redux вместо Facebook Flux?
  • Stack Overflow: Зачем мне использовать Redux в этом примере?
  • Stack Overflow: Каковы могут быть недостатки использования Redux вместо Flux?
  • Stack Overflow: Когда мне добавить Redux в приложение React?
  • Stack Overflow: Redux против обычного React?
  • Твиттер: Redux — это платформа для разработчиков для создания настраиваемого управления состоянием с помощью повторно используемых элементов

Можно ли использовать Redux только с React?

Redux можно использовать в качестве хранилища данных для любого слоя пользовательского интерфейса. Наиболее распространённое использование — с React и React Native, но существуют библиотеки для Angular, Angular 2, Vue, Mithril и других. Redux просто предоставляет механизм подписки, который может быть использован любым другим кодом. При этом он наиболее полезен в сочетании с декларативной реализацией представления, которая может выводить обновления пользовательского интерфейса из изменений состояния, такие как React или аналогичные библиотеки.

Нужен ли особый инструмент сборки для использования Redux?

Redux изначально написан на ES6 и транспилируется для производства в ES5 с помощью Webpack и Babel. Вы должны иметь возможность использовать его независимо от вашего процесса сборки JavaScript. Redux также предлагает сборку UMD, которую можно использовать непосредственно без какого-либо процесса сборки. Пример counter-vanilla демонстрирует базовые ES5-использование с включённым Redux в качестве <script>. Как указано в соответствующем запросе на вытягивание:

Новый пример Counter Vanilla призван развеять миф о том, что Redux требует Webpack, React, горячей перезагрузки, саг, создателей действий, констант, Babel, npm, CSS-модулей, декораторов, плавного латыни, подписки на Egghead, докторской степени или уровня «Превосходит ожидания».

Нет, это всего лишь HTML, некоторые <script> теги, и обычное манипулирование DOM. Приятного пользования!

© 2015–2017 Dan Abramov
Licensed under the MIT License.
http://redux.js.org/docs/faq/General.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API