Реакция - Где лучшее место для получения данных? - PullRequest
0 голосов
/ 07 февраля 2019

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

У меня есть компонент с именем UsersSelect, который является компонентом выбора, который отображает информацию о пользователе.В настоящее время я извлекаю пользовательские данные внутри этого компонента, чтобы сделать его более пригодным для повторного использования.

У меня также есть компонент UsersTable, который делает то же самое, что и UsersSelect, и иногда у меня они оба отображаютсяна том же экране, который вызывает две одинаковые выборки.Чтобы избежать этого, я использую redux-saga с takeLatest .

Так что мои вопросы:

  • Можно лииспользовать это?
  • Должен ли я поместить логику выборки в родительский компонент?Как UsersPage компонент?
  • Есть ли еще лучший способ упростить это?

Ответы [ 2 ]

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

Для архитектуры реагирования, без редукции, выборочные данные работают в родительском компоненте, и да, компонент UsersPage должен иметь данные для дочерних компонентов для работы, но в случае с избыточностью у вас есть несколько вариантов, таких как создание презентационных компонентов * 1002.* или реализуйте фабричный шаблон , но для этого требуется, чтобы пара бэкэнд-архитектуры

const factoryComponent = (FactoryComponent, DefaultComponent, props) => ({
      Component: FactoryComponent || props.component || DefaultComponent,
      props: { ...props, component: FactoryComponent ? props.component : fetch(url).then(data=>console.log(data)); },
    })
0 голосов
/ 07 февраля 2019

Я согласен с комментарием Миро Дж.

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

В вашем случае (кажется) оба ваших компонента очень тесно связаны.

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

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