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 前端 - 组件应该“打开一个对话框”吗?的主要内容,如果未能解决你的问题,请参考以下文章

前端:Vue前端开发规范,值得收藏!

前端通用组件设计

你应该要知道的vue.js

Vue前端规范

想做前端开发?推荐几个必备珍品组件库

前端随心记---------前海面试汇总