Я прочитал несколько статей о необходимости использования Redux и создал два полнофункциональных приложения React + Redux. Я даже разместил вопрос на Quora У меня все еще не может быть окончательного ответа на мой вопрос:
Нужно ли сохранять каждое свойство состояния компонента в хранилище Redux?
Первый проект, который я создал, следуя руководству, в котором он в основном сохраняет все в магазине.
Вот ссылка Github .
С тех пор, как я изучал React и Redux, я не ставил под сомнение этот подход и продолжал его. Но, кажется, несколько ненужно сохранять все в хранилище
Например, есть действие, которое сохраняет данные комментариев в хранилище:
postActions. js
// Add Comment
export const addComment = (postId, commentData) => dispatch => {
dispatch(clearErrors());
axios
.post(`/api/posts/comment/${postId}`, commentData)
.then(res =>
dispatch({
type: GET_POST,
payload: res.data
})
)
.catch(err =>
dispatch({
type: GET_ERRORS,
payload: err.response.data
})
);
};
И это называется так:
CommentForm. js
onSubmit(e) {
e.preventDefault();
const { user } = this.props.auth;
const { postId } = this.props;
const newComment = {
text: this.state.text,
name: user.name,
avatar: user.avatar
};
this.props.addComment(postId, newComment);
this.setState({ text: '' });
}
Если бы я работал над своим собственным проектом, я бы сохранил бы данные сообщения, хранящиеся локально на уровне компонента:
Вторым проектом был личный проект, где единственными данными, которые я сохранил в хранилище, является информация об учетной записи пользователя, потому что она мне понадобилась бы в другом компоненты во всем приложении, чтобы отправить его в некоторых запросах API к бэкэнду.
Все остальные компоненты в основном независимы, или поток между ними не превышает go двух или трех компонентов. Поэтому я действительно не мог понять, почему я заставляю себя кодировать все действия, редукторы ... и т. Д. c для всех компонентов. Таким образом, я просто передаю реквизиты и функции между компонентами простым старым способом реагирования.
Большинство ответов, которые я нашел, не go в эту конкретную c деталь, упомянутую в моем вопросе. Все они говорят с точки зрения высокого уровня.
Прежде чем приступить к работе над другими проектами, я хотел бы:
- Четкий ответ на мой вопрос
- Подход, который я использовал для моего личного проекта хорошо. Другими словами, могу ли я использовать Redux просто для информации учетной записи пользователя, а для остальных компонентов ее не использовать?
Я просто хочу устранить эту путаницу, чтобы при использовании Redux я Я уверен на 100%, что я им пользуюсь, потому что он мне действительно нужен.