Если состояние в моем Redux Store является наблюдаемым, следует ли мне подписываться на него в каждом компоненте, который нуждается в нем, или подписываться в одном месте и передавать в качестве входных данных? - PullRequest
0 голосов
/ 29 апреля 2020

В настоящее время, когда пользователь входит в систему, я подписываюсь на состояние пользователя в моем Redux Store в каждом компоненте, для которого требуется состояние пользователя.

Я хочу получить доступ к состоянию пользователя в нескольких местах, таких как:

  1. боковая панель в моем приложении - для получения профиля pi c, userName или ID
  2. Службы, которым требуется идентификатор пользователя для извлечения данных из базы данных

Если мое пользовательское состояние является наблюдаемым, должен ли я подписываться на него в каждом компоненте и услуге, для которых требуется знать идентификатор пользователя, или подписываться только в одном месте?

1 Ответ

1 голос
/ 29 апреля 2020

Ответ имеет несколько баллов:

Вам не нужно подписываться на весь штат. Вам необходимо подписаться на определенный c «кусочек» магазина с помощью селектора createSelector. Вы можете подписаться на него везде.

НО ... несколько слов о хорошей архитектуре. Хорошей практикой является разделение компонентов на две категории: «умные» и «немые».

«Умные» - это контейнеры, отвечающие за разрешение данных и передачу их детям через входные данные , Подпишитесь на изменения состояния здесь.

«Тупой» компонент - более детальная часть вашего приложения. Они должны получать данные через входы и генерировать события через выходы. И содержат только некоторые специфические c logi c внутри.

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

...