dot*_*pro 2 observable rxjs typescript ngrx angular
我是 Angular、RxJs 和 Ngrx 的新手
我知道我们订阅了一个 Observable 并观察变化。我在 Ngrx入门中遇到了这段代码
<div>Current Count: {{ count$ | async }}</div>
Run Code Online (Sandbox Code Playgroud)
异步管道更干净
data$ = this.service.data$;
Run Code Online (Sandbox Code Playgroud)
并在模板中
{{data$ | async}}
Run Code Online (Sandbox Code Playgroud)
与必须管理订阅。
ngOnInit() {
this.sub = this.service.data$.subscribe(data => { this.data = data });
}
ngOnDestroy() {
this.sub.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
并在模板中
{{data}}
Run Code Online (Sandbox Code Playgroud)
正如@jonrsharpe 提到的,这并没有真正的不同。在底层,异步管道将创建一个订阅并存储最新的值,这与您想要订阅并显示结果时需要执行的操作相同。
async当组件(指令)被销毁时,管道还将负责取消订阅可观察对象。
在变化检测方面它可能稍微更有效,但我不确定。
然而,大多数情况下,它只是为了方便而使用。使用async管道的代码少于创建组件变量并在组件onInit或构造函数中订阅它,然后跟踪订阅以取消订阅的代码。
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |