首页 > 解决方案 > 使用ngrx store vs @Input 进行通信之间的简单通信

问题描述

这个问题是关于最佳实践,以及何时使用 ngrx/store 以及何时不使用。所以我有一个正在处理的项目,并且已经在使用 ngrx/store 进行状态管理。我知道ngrx/state 应该解决什么问题,但是我时不时遇到一个我不确定是否应该使用ngrx/store 的情况。

所以情况是这样的:我有两个组件,一个用于列出类别,另一个用于显示类别详细信息。类别详细信息可以通过实现以下任一方式显示特定类别:

  1. 例如, ngrx 状态中的字段,selectedCateogryId当它在第一个组件中被选中时,它会触发一个更新ngrx 状态字段的操作,而第二个组件订阅selectngrx/storeselectedCateogryId字段

  2. 或者在第二个组件中使用基础@Input CategoryId,在第一个组件中使用属性<second-component [category_id]="category.id"></second-component>

我的问题是什么是正确的方法,我应该将ngrx/store用于像这样简单的事情(因为我已经在应用程序中使用ngrx/store),或者只是使用@Input绑定进行简单的组件通信.

标签: angularngrxngrx-store

解决方案


当组件之间存在直接通信时,确切地说,存在父子关系,我认为最好使用@Input。为什么?!以下是一些原因:

  1. 这更容易。你不必编写动作、reducer、选择器来让这个简单的事情工作
  2. 业务完全停留在组件内。否则,您必须小心,如果任何其他组件使用相同的状态并做自己的事情。

推荐阅读