加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular EventEmitter与通过服务进行通信

发布时间:2020-12-17 17:36:33 所属栏目:安全 来源:网络整理
导读:让我们假设我们有一个深层嵌套架构,其中包含一个主要组件和3个子组件.例如: todo-todo list-todo list action bar-todo list button 还有其他组件. 当我们使用EventEmitter时,我们必须将所有层都放到todo组件中. 替代方案是使具有可观察的通信服务从按钮组
让我们假设我们有一个深层嵌套架构,其中包含一个主要组件和3个子组件.例如:

todo->todo list->todo list action bar->todo list button

还有其他组件.

当我们使用EventEmitter时,我们必须将所有层都放到todo组件中.
替代方案是使具有可观察的通信服务从按钮组件与待办事件组件通信.

使用这种或那种方式有什么起伏?我该怎么办?

解决方法

这是一个设计视角.

一般来说,我想到的是,如果应用程序大小是中等到大,那么使用行为主题或重播主题去共享服务,以将消息传输到其他组件.

甚至更好的设计是去ngrxi:e在Angular中使用redux.
唯一的缺点就是你需要为你的动作和减速器编写额外的代码,但优点是所有的逻辑都与在redux世界中被称为哑组件的组件分开.一旦完成,它将使用ngrx dev工具在任何时刻跟踪状态,并且您可以轻松跟踪在何时以及如何调试和添加代码时触发的事件或操作.

只有当您的应用程序大小很小时,我才会建议您使用事件发射器,就像多个嵌套组件一样,您会被意大利面条代码吞没.您无法跟踪所有触发事件,然后最终重新编写代码.

有关使用事件发射器与共享服务LINK的更多信息.有一个特殊问题.

有关ngrx LINK的更多信息.此链接使用ngrx v2.

我使用ngrx v.4开发了一个小应用程序,以下是同一个git和工作example的git repo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读