为什么NgRx操作类型格式化为非强制的“ [源]事件”字符串?

时间:2019-06-05 14:32:17

标签: ngrx

我正在阅读NgRx的基本体系结构教程,他们解释了有关Actions的信息:

  

接口具有单个属性,即类型,表示为字符串。 type属性用于描述将在您的应用程序中分派的操作。该类型的值以[Source] Event的形式出现,用于提供有关它是什么动作类别以及从哪里调度动作的上下文。

https://ngrx.io/guide/store/actions

我想知道不执行这种任意字符串格式的原理或好处吗?为什么不让Actions强制定义一个sourceevent属性,这些属性可以由库组合成一个type属性?似乎它留有出错的余地,可以轻松忽略推荐的格式。有什么好处吗?

1 个答案:

答案 0 :(得分:1)

这只是一个约定。字符串可以用作类型,因此从该角度来看它是“安全的”。在某个时候,开发人员必须自行选择有意义的字符串,对吧?

我倾向于这样做以使每组动作保持一致:

import { createAction, props } from '@ngrx/store';
import { Config } from '../models/config.model';

const appAction = '[App]';

export const getConfig = createAction(
  `${appAction} Get Config`
);

export const setConfig = createAction(
  `${appAction} Set Config`,
  props<{ config: Config }>()
);

此处是与动作和动作创建者有切线相关的article。有趣的读物,但不能真正回答您的问题。