使用ngrx store vs @Input 进行通信之间的简单通信

Using ngrx store vs @Input for simple communication between communication

这个问题是关于最佳实践,以及什么时候使用 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 绑定进行简单的组件通信。

当组件之间有直接通信的时候,准确的说是父子关系,我觉得还是用@Input比较好。为什么?!以下是一些原因:

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