角度/一般前端 - 组件应该"open a dialog"吗?



假设MatDialog或任何";对话框打开服务";在用dialogService.open打开对话框的实现中;对话框打开逻辑";适用于组件本身,还是应用于存储库(NGRX(效果?

组件.ts

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

组件.ts

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

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

我不认为这个问题有一个具体的单一答案,这一切都取决于你需要什么。这是我的两分钱,我绝对是想讨论(!(

有了这种逻辑,最终就更容易重构和重用了。然而,如果这个对话框的"答案"(对例如关闭操作作出反应(只意味着由您开始打开对话框的组件消耗,那么为什么要首先将所有内容抽象为效果呢?

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

最新更新