angular - 使用ngrx store vs @Input 进行通信之间的简单通信
问题描述
这个问题是关于最佳实践,以及何时使用 ngrx/store 以及何时不使用。所以我有一个正在处理的项目,并且已经在使用 ngrx/store 进行状态管理。我知道ngrx/state 应该解决什么问题,但是我时不时遇到一个我不确定是否应该使用ngrx/store 的情况。
所以情况是这样的:我有两个组件,一个用于列出类别,另一个用于显示类别详细信息。类别详细信息可以通过实现以下任一方式显示特定类别:
例如, ngrx 状态中的字段,
selectedCateogryId
当它在第一个组件中被选中时,它会触发一个更新ngrx 状态字段的操作,而第二个组件订阅select
ngrx/storeselectedCateogryId
字段或者在第二个组件中使用基础
@Input CategoryId
,在第一个组件中使用属性<second-component [category_id]="category.id"></second-component>
我的问题是什么是正确的方法,我应该将ngrx/store用于像这样简单的事情(因为我已经在应用程序中使用ngrx/store),或者只是使用@Input绑定进行简单的组件通信.
解决方案
当组件之间存在直接通信时,确切地说,存在父子关系,我认为最好使用@Input。为什么?!以下是一些原因:
- 这更容易。你不必编写动作、reducer、选择器来让这个简单的事情工作
- 业务完全停留在组件内。否则,您必须小心,如果任何其他组件使用相同的状态并做自己的事情。
推荐阅读
- java - 每次创建新实例时,ArrayList 都会被覆盖
- javascript - 如何将 2D 实时动态文本添加到 Three.js 场景?
- javascript - React - 并排显示图像
- python - 如何打印与两个不同列表中的不同值相对应的值?(Python)
- reactjs - 如何在 setState 之后 localStorage 设置项目?
- html - translateY(-50%)后如何调整父div的高度
- c - c中可变大小的数组
- java - 如何将 Java 文件添加到构建路径 Android Studio
- html - 电子邮件 HTML - 无法使用 _ 而不是 - 正确换行的行
- nginx - 静态文件的 Nginx 设置