Redux - это контейнер с предсказуемым состоянием - PullRequest
0 голосов
/ 24 февраля 2019

Описание проекта Redux :

Redux - это контейнер с предсказуемым состоянием

Может объяснить мне, что означает "предсказуемое" словов этом контексте?

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Через некоторое время я понял суть: во-первых, мой вопрос возник из событий, управляемых C ++ / Java / C # (Redux имеет реализацию не только для JS).

Так что мне интересно, что плохого в старыхpattern fashion Событийная среда вроде Winform и все как?Все они работают с DataTable или коллекцией простых классов (Structures).Визуальный компонент содержит состояние редактирования или другое состояние виджета, но не логику вообще.(Я не говорю здесь о таких громких словах, как MVC или MVVW или любых других лозунгах. Но все убеждают одну и ту же правду: мы должны каким-то образом отделить представление от логики ).

См. Evaldas Buinauskas ответ, есть 4 принципа.Позвольте мне объяснить, почему эти принципы не являются основными:

1> По какой причине я нуждаюсь в неизменности?(Автоматическое изменение осведомленности может быть сделано с помощью аспектно-ориентированного программирования. Или даже не так уж плохо вызывать повторную визуализацию вручную после каждого действия)действие без удаления предыдущего. Для большинства приложений не является необходимым или невозможным из-за озера оперативной памяти).

3> Все, что я знал, реализует его.

4> Некоторые из вышеперечисленных,Неизменность не требуется, и новое состояние в результате действия хорошо реализуется со всеми известными шаблонами драйвера событий.

Итак, я думаю, что основной ответ Evaldas Buinauskas с моей точки зрения таков:

Redux в значительной степени вдохновлен архитектурой Elm и поддерживает принципы функционального программирования,одна из них - чистые функции (они не вызывают побочных эффектов (например, http-вызовы, чтение с диска) и их вывод всегда одинаков для одного и того же ввода).

С чистой функцией, которая ничего не меняет снаружииз магазина, мы получаем более понятный и тестируемый код (я думаю, что это означает слова "предикаты").

0 голосов
/ 24 февраля 2019

Сначала вы должны понять, как работает Redux.Есть несколько ключевых принципов:

  1. Состояние является неизменным объектом
  2. Вы никогда не изменяете состояние приложения, вы всегда возвращаете новое, измененное состояние
  3. Все изменения состоянияинициируется через действия (они содержат детали требуемых изменений)
  4. Редукторы принимают текущее состояние, действие и создают новое состояние ((state, action) => state)

Таким образом, вы можете видеть, что все это однонаправлено(изменяет поток только в одну сторону):

состояние -> действие -> редуктор -> состояние -> действие -> редуктор -> состояние ...

Redux в значительной степени вдохновлен архитектурой Elm ипоощряет принципы функционального программирования, один из которых является чистыми функциями (они не вызывают побочных эффектов (например, http-вызовы, чтение с диска) и их выходные данные всегда одинаковы для одного и того же ввода).

Каждое изменение состояния в редукторахразработчики должны позаботиться об этом явно.Также все редукторы должны быть чистыми.Вот откуда берется предсказуемость.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...