Почему типы действий NgRx отформатированы как необработанная строка «[Source] Event»? - PullRequest
0 голосов
/ 05 июня 2019

Я читаю базовое руководство по архитектуре NgRx, и они объясняют действия:

Интерфейс имеет единственное свойство, тип, представленный в виде строки. Свойство type предназначено для описания действия, которое будет отправлено в вашем приложении. Значение типа приходит в форме события [Source] и используется для предоставления контекста, к какой категории действия он относится и откуда было отправлено действие.

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

Я задаюсь вопросом о целесообразности или преимуществах невыполнения такого рода произвольного формата строки? Почему бы не сделать так, чтобы действия принудительно определяли свойства source и event, которые могут быть объединены библиотекой в ​​атрибут type? Кажется, что это оставляет место для ошибок, позволяя легко игнорировать рекомендуемый формат. Есть ли в этом преимущество?

1 Ответ

1 голос
/ 28 июня 2019

Это просто соглашение. Строки могут быть использованы как типы, так что это «безопасно» с этой точки зрения. В какой-то момент ответственность за выбор значимых строк возлагается на разработчика, верно?

Я склонен делать это, чтобы поддерживать последовательность для каждого набора действий:

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 }>()
);

Вот тангенциально связанная статья о действиях и создателях действий. Интересное чтиво, но по-настоящему не отвечаю на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...