【问题标题】:Angular/general front-end - should components "open a dialog"?Angular/General 前端 - 组件应该“打开一个对话框”吗?
【发布时间】:2022-01-20 23:47:27
【问题描述】:

假设MatDialog 或任何“对话框打开服务”实现,其中使用dialogService.open 打开对话框,“对话框打开逻辑”是否适合组件本身或存储库(NGRX)效果?

组件.ts

foo(): void {
  this.dialogService.openDialog(BarDialog, params)
}

组件.ts

foo(): void {
  this.store.dispatchAction(OpenBarDialog, params)
}

并且效果将具有“对话框打开逻辑”。我的直觉是“打开对话框是一种副作用”。

【问题讨论】:

    标签: angular rxjs ngrx


    【解决方案1】:

    我认为这个问题没有一个特定的单一答案,一切都取决于您的需求。这是我绝对要讨论的两分钱(!)

    在效果中包含这个逻辑使得最终更容易重构和重用。但是,如果此对话框的“答案”(对例如关闭动作的反应)仅由您开始打开对话框的组件使用,那么为什么首先将所有内容抽象为效果?

    另一方面,如果您一直使用 NGRX,您最终会得到更具可读性和合理性的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多