useSelector или useContext - PullRequest
       3

useSelector или useContext

0 голосов
/ 27 февраля 2020

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

Каков наилучший подход для использования данных из компонента children?

  • Оберните родительский компонент с помощью React.useContext() и передайте его в <*Context*.Provider/>, и используйте его как <*Context*.Consumer/>
  • Используйте useSelector() внутри дочерних элементов для извлечения данных из хранилища.

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

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Вы используете оба (потому что useSelector использует API контекста под капотом). Вот почему вы должны иметь родительский элемент <Provider store={store}>, чтобы использовать useSelector.

Так что я думаю, что самый простой способ - сделать useSelector и позволить React Redux беспокоиться об API контекста.

0 голосов
/ 27 февраля 2020

Я боролся с тем же вопросом меньше, чем за неделю go, по мне:

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

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

...