Магазин React-Redux или Передача API в реквизит компонентам, что является лучшим способом - PullRequest
0 голосов
/ 26 марта 2020

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

Предложения будут заметны :)

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Вызов API обязательно будет сделан в компоненте. Вот так:

const Component = () => {
  useEffect(() => {
    const fn = async () => {
      await apiCall()
    }
    fn()
  }, [])
}

Но ваш вопрос состоит в том, где вы должны его хранить.

Это просто:

  1. Если данные, которые вы получаете, будут использоваться во всем приложении, тогда Redux - отличный вариант. Он также обеспечивает постоянство данных с минимальными усилиями, используя redux-persist (https://github.com/rt2zz/redux-persist), так что это не только глобальный объект, к которому вы можете получить доступ.

Особенности:

а. Настойчивость б. Глобальное состояние, доступное для всех c. Улучшенная отладка с помощью Redux dev tools

Если вы хотите избежать только prop drilling, тогда React.Context - хороший вариант Если вы используете drilling 2 или 3 уровня с вашими реквизитом, просто не перебивайте их, используя Context
1 голос
/ 26 марта 2020

Я настоятельно рекомендую не использовать React-Redux. Вот причины

  1. Почему вы должны добавить библиотеку в свое приложение только для передачи состояний
  2. Redux поставляется с кодом служебной информации (действия при написании и т. Д. c)
  3. Контекстный API React может решить вашу проблему (которая уже доступна в библиотеке реагирования)
  4. Композиция React - это еще один способ передачи состояний дочерним компонентам.
  5. Redux также имеет накладные расходы на обслуживание.

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

Примечание: всякий раз, когда я говорю React, я имею в виду React более новых версий. Реакция 16,8 +

...