angular - 复杂 NGRX 插入的设计
问题描述
我正在使用以下模型开发功能
class A {
id: int
prop1: string
b_Id?: number;
c_Id?: number
}
class B {
id: int
prop2: string
}
//C is like B
在许多情况下,这些操作是分开的,所以我有 a.effects.ts、b.effects.ts、c.effects.ts 等,带有 saveA 效果和 saveB 效果。然而,一项新功能要求我在添加新 a 时可以选择添加新 b 和 c。
我是这种模式的新手,所以我还没有找到处理这个问题的正确方法。目前当然这是触发每个 asynchonosoly 以便 A 在 b 返回之前保存 id。这并不奇怪。
问题一:动作处理
展开有效载荷以进行保存,例如
export class AddA implements Action {
readonly type = AActionTypes.AddA;
constructor(public payload: {a: A, b: B, c: C}) {}
}
还是分别发出每个动作?或者创建一个单独的操作并让 saveA 一个人呆着?
问题2:效果
我做了一些链接,但不多。我对此还是很陌生-什么是正确的方法?一个很大的影响,还是将它们链接在一起?我正在寻找符合框架且不是反模式的东西。我不知道那是什么样子。
解决方案
有几种方法可以做到这一点,你看过NgRx:模式和技术(youtube 上也有视频)吗?
Q1:动作是系统中的唯一事件。我会为它创建一个单独的操作。
Q2:取决于它们的“连接”程度,如果这些连接很重,我会选择创建一种效果(或者如果你有这种可能性,只调用一个 API)。
推荐阅读
- elasticsearch - Logstash Json 解析
- javascript - 路由更改时反应本机重新渲染
- haskell - 获取元组的最高值?
- python - **SQLAlchemy**:获取另一列不同的一列的计数
- scikit-learn - Sagemaker - 随机森林 - 特征归一化?预处理?
- python - 将值从 html 模板传递到 Django 中的views.py
- c++ - Qt5:如何使用 State 正确设置 ProgressBar
- python - 如何使用 Python 将 JSON 对象写入 JSON 数组?
- mysql - mysql group by,右加入。命令不起作用
- python - 我需要互联网才能使用 jupyter 笔记本吗?