【发布时间】:2019-01-25 22:52:40
【问题描述】:
我正在学习 Angular 5+,最近来到主题/订阅部分,我看到很多教程想以某种方式使用订阅:
- 在组件中声明订阅
- 通过服务的主题或 ngrx/store 在 ngOnInit 中订阅它
- 在 ngOnDestroy 中取消订阅
但是,我不确定我们是否必须订阅/取消订阅 ngOnInit 和 ngOnDestroy 组件中的每个订阅。例如,如果我的订阅将通过按钮单击事件进行更新,我应该在我的组件中订阅哪个计划?
- 仅 ngOnInit
- 仅按钮点击事件
- ngOnInit 和按钮点击事件
为什么我们总是在 ngOnInit 中订阅订阅? ngOnInit 就像页面生命周期中的 Page_Load,所以它只会在第一次调用一次,如果订阅时调用更新了,ngOnInit 会被一遍又一遍地触发吗?如果是这样,我的组件是否会反复加载,如果在大型应用程序中会导致性能问题?
【问题讨论】:
标签: angular5 angular6 subscription subject ngoninit