Когда я должен использовать Redux в своем приложении реакции? - PullRequest
4 голосов
/ 19 июня 2019

Я работаю над веб-приложением реагирования и / или компания купила панель администратора для экономии времени. На этой панели они использовали избыточность для обработки состояний, а все параметры настройки сохраняются в избыточности ...

Но на самом деле я запутался в использовании readux для каждого варианта использования!

Все мои запросы и состояния являются компонентной базой и не являются глобальными, и они не являются необходимыми для использования в других компонентах этого приложения!

Например, для загрузки списка игр у меня есть этот код:

componentDidMount() {
    this.setState({
      loading: true
    });
    http._GET('/game/getAllGames')
    .then(response => {
      this.setState({
        loading: false
      });
      this.props.dispatch(gamesListAction(response.data.result.games));
    });
  }

В этом случае я использую ответ и список только на странице списка игр. Поэтому я думаю, что это не логично, я сохраняю response.data в redux, а затем получаю все данные с помощью connect и другого процесса ....

Или другой пример, для вставки форм мне никогда не понадобится хранить вставку форм или ответ API, потому что это вставка, а не получение данных из API!

Я читал о редуксе, но я думаю, что он подходит не для всех приложений и случаев использования, и я не должен хранить ответы на одноразовое использование для редукса.

Как вы относитесь к этому вопросу?

Спасибо

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Да, вы правы. Редукция не подходит для каждого приложения, согласно моим знаниям, редукция или управление состоянием используется в основном, если вы хотите показать предыдущее состояние пользователя вместо пустого, когда происходит какая-то операция

Вот немного подробное объяснение о том, когда использовать редукс https://medium.com/@fastphrase/when-to-use-redux-f0aa70b5b1e2

Счастливого кодирования!

0 голосов
/ 19 июня 2019

FAQ reduxjs описывает его лучше всего.

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

Redux - не что иное, как инструмент управления состоянием, и вам нужны более веские причины для его использования: В вашем случае, во-первых:

  • React setState увеличит сверхурочные компоненты с растущими требованиями, и это значительно сложнее поддерживать. Разделение управления состоянием на редуктор хорошо рефакторинг и делает его более читабельным.
  • Состояние компонента кэширования , например, если вы используете корзину, прогрессивные мастера. Взаимодействие с пользователем часто приводит к изменениям состояния, в таких случаях. Поддержание состояния в редуксе теперь имеет большой смысл.
  • Компоненты с глубокими вложениями , передающие состояние и множество реквизитов своим детям, быстро раздуваются с растущими требованиями. Это классический сценарий с большим количеством компонентов оболочки (особенно с деталями пользовательского интерфейса). Лучшим способом было бы рефакторинг и непосредственное подключение низкоуровневых компонентов к редуксу (преобразование в контейнер . Читать: презентационные и контейнерные компоненты )
  • Отображение состояния приложения на несколько компонентов контейнера. Например, если у вас было getAllGames состояние загрузки, которое должно быть представлено в каком-то progress-loader-component где-нибудь в вашем приложении. Использование redux облегчит вам обмен данными между этими компонентами.
  • Полезно при создании компонентов корневого уровня, которые могут взаимодействовать повсюду . Как ваш компонент useraccount, модал, оповещения, загрузчики .

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

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