Глобальное состояние для React - PullRequest
1 голос
/ 04 августа 2020

Простите мое незнание. Я все еще новичок в React. Есть ли что-то особенно неправильное в хранении определенных значений в состоянии компонента приложения и передаче опоры дочерним компонентам, которая позволяет им устанавливать состояние приложения? Конечно, я бы не стал использовать его для хранения всего состояния дочерних компонентов, только определенных значений, которые я хочу, чтобы они были доступны везде.

Ответы [ 4 ]

2 голосов
/ 04 августа 2020

Я думаю, вам следует изучить redux / react-redux или recoil . Это библиотеки, которые созданы для обработки глобального состояния (или состояния, которое необходимо в нескольких местах).

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

Redux был / считается go в библиотеку управления состоянием для реагирования приложений многими. Он отлично интегрируется с react и является очень зрелым. Я бы поставил go за это, если вы ожидаете, что ваше приложение будет иметь сложное глобальное состояние или со временем станет все более и более сложным. Также доступны отличные библиотеки-компаньоны. Например, redux-saga , если вы хотите обрабатывать побочные эффекты, или redux-persist , если вы хотите сохранить состояние ваших приложений.

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

Если у вас всего несколько значений, вы также можете просто использовать reacts API контекста .

1 голос
/ 04 августа 2020

Вы можете использовать React-context или Redux , например, redux - это предсказуемый контейнер состояния для JavaScript приложений (что-то вроде глобального состояния, к которому можно получить доступ всем над проектом)

проверьте здесь https://redux.js.org/

0 голосов
/ 04 августа 2020

Это зависит от глубины вашего дерева приложений. Если это очень простое приложение, вы можете обойтись простым использованием состояния React. Если это что-то более сложное (например, на 3 или более уровней), я предлагаю использовать React Context (для простых значений) или Redux для более сложных действий.

0 голосов
/ 04 августа 2020

Это, безусловно, правильно, в некоторых случаях другие параметры используют контекст реакции или response-redux

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

Тем не менее, они оба требуют значительного обучения и настройки.

...