Использование магазина ngrx против @Input для простой связи между коммуникациями - PullRequest
0 голосов
/ 04 октября 2019

Этот вопрос касается лучших практик, когда использовать ngrx / store, а когда нет. Итак, у меня есть проект, над которым я работаю, и уже использующий ngrx / store для управления состоянием. Я понимаю, что должен решить ngrx / state, но время от времени я сталкивался с случаем, когда я не уверен, должен ли я использовать ngrx / store или нет.

Итак, вот случай: у меня есть два компонента, один для отображения категорий, а другой для отображения деталей категории. Сведения о категории могут отображать определенную категорию путем реализации:

  1. Поле в состоянии ngrx, например selectedCateogryId, и всякий раз, когда оно выбирается в первом компоненте, оно запускает действиеобновление поля в состоянии ngrx, в то время как второй компонент подписан на поле select ngrx / store selectedCateogryId

  2. или используйте базовый @Input CategoryId во втором компоненте,и используйте атрибут в первом компоненте <second-component [category_id]="category.id"></second-component>

Мой вопрос заключается в том, какой подход был бы правильным, если бы я использовал ngrx / store для чего-то такого простого, как это (так как яя уже использую ngrx / store в приложении), или просто используйте привязку @Input для простого взаимодействия компонентов.

1 Ответ

1 голос
/ 04 октября 2019

Когда есть прямая связь между компонентами, если быть точным, есть родительские, дочерние отношения, на мой взгляд, лучше использовать @Input. Почему?! Вот несколько причин:

  1. Это проще. Вам не нужно писать действие, редуктор, селекторы, чтобы эта простая вещь работала
  2. Бизнес полностью остается внутри компонента. В противном случае вы должны быть осторожны, если какой-либо другой компонент использует то же состояние и занимается своим делом.
...