Когда добавлять что-то в хранилище redux по сравнению с хранилищем c компонента, указанным при использовании React Redux - PullRequest
1 голос
/ 13 июля 2020

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

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

constructor(props) {
    super(props);
    this.state = {
        message: null,
        redirect: null
    };

Эти свойства просто используются, чтобы указать, куда перенаправить пользователя или какое сообщение показывать при отправке формы.

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

Ответы [ 2 ]

1 голос
/ 14 июля 2020

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

  • эти данные будут использоваться в разных частях приложения
  • вам нужно кэшировать эти данные (чтобы иметь возможность восстановить их из состояния и не выполнять другой сетевой запрос, например)
  • вы хотите, чтобы эти данные были согласованными при горячей перезагрузке компонентов пользовательского интерфейса
  • вам нужна отладка во времени
1 голос
/ 13 июля 2020

Я думаю, что если вы не знаете, нужно ли вам использовать redux, тогда вам не нужно redux.

Мы используем много redux и сделали « передовой опыт", но теперь мы полагаемся на сообщение Дэна Абрамова: Возможно, вам не понадобится redux .

Вам не нужно« сокращать »ваше приложение, redux, только здесь разделять глобальное состояние между несколькими компонентами, но локальное состояние в порядке. Наконец, React добавил Context API и useReducer , которые могут решать те же проблемы, что и redux, с помощью более «локального» подхода.

...