Я новичок в реакции и пытаюсь узнать о сокращении.
У меня есть простое демонстрационное приложение, в котором пользователь должен войти в систему. После входа в систему он может видеть список фильмов, может щелкнуть по отдельному фильму, чтобы просмотреть детали, комментарии, актеров и т. д., А также может добавить фильм в корзину. Это простое приложение с несколькими компонентами.
Какие компоненты мне следует подключить к Redux? Я видел, как люди подключали каждый отдельный компонент (в моем примере это означало бы, что я должен писать действия, сокращать и т. д. Для компонента, который извлекает список комментариев к фильмам и актеров), но мне это кажется неправильным ... Насколько я понимаю, я добавлены ли пользовательские данные и фильмы в корзину как глобальные данные, и к Redux следует подключать только те компоненты, которым требуются эти данные?
Я ошибся? Должен ли я все связать с помощью redux?
Спасибо
Подключайте только те компоненты, которым нужны данные из хранилища.
Компонент произведет повторную визуализацию со сменой реквизита. Компоненты, которым не нужны данные из хранилища, обновлять не нужно.
Я полагаю, вы читали Знаменитый пост Дэна Абрамова о тупых / презентационных и сохраняющих состояние / контейнерных компонентах. По сути, тупых людей вообще не нужно подключать к redux.
Что касается состояний с состоянием ... это зависит от обстоятельств. Если некоторые данные принадлежат состоянию самого компонента и не должны использоваться другими компонентами, не связывайте их с Redux. В противном случае, если какая-то часть состояния разделяется между несколькими компонентами - используйте хранилище Redux для этих данных.
Например, если вы пишете блог и делитесь фотографией своего пользователя между несколькими компонентами - позвольте вашему хранилищу Redux содержать ее. Но если вы загружаете и отображаете свое резюме пользователя только в одном компоненте, сохраните его в состоянии этого компонента и загрузите его с помощью вызова fetch()
в componentDidMount()
.
Однако имейте в виду, что позже, когда ваш проект будет расти, вы можете захотеть поделиться этим фрагментом данных с другими компонентами, поэтому может потребоваться некоторый рефакторинг, и ваше состояние иногда постепенно перемещается из состояния компонента в хранилище Redux, как и большинство других. Количество генов постепенно переместилось из митохондриального генома в ядро.
Думаю, еще один хороший пост о том, где хранить-что это: medium.freecodecamp.org/…