Angular/General 前端 - 组件应该“打开一个对话框”吗?
Posted
技术标签:
【中文标题】Angular/General 前端 - 组件应该“打开一个对话框”吗?【英文标题】:Angular/general front-end - should components "open a dialog"? 【发布时间】: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)
并且效果将具有“对话框打开逻辑”。我的直觉是“打开对话框是一种副作用”。
【问题讨论】:
【参考方案1】:我认为这个问题没有一个特定的单一答案,一切都取决于您的需求。这是我绝对要讨论的两分钱(!)
在效果中包含这个逻辑使得最终更容易重构和重用。但是,如果此对话框的“答案”(对例如关闭动作的反应)仅由您开始打开对话框的组件使用,那么为什么首先将所有内容抽象为效果?
另一方面,如果您一直使用 NGRX,您最终会得到更具可读性和合理性的代码。
【讨论】:
以上是关于Angular/General 前端 - 组件应该“打开一个对话框”吗?的主要内容,如果未能解决你的问题,请参考以下文章