sup*_*guy 6 observable angular
想要了解角度的最佳实践。一般来说,应该订阅服务中的可观察量以存储值,还是只订阅相关组件更好?如果出于这个原因订阅服务是可以的,那么订阅应该在服务的构造函数中完成还是最好避免这种情况?
我建议您不要Observable在组件逻辑中订阅,也不要在服务中订阅,除非您明确unsubscribe()订阅。
更好的方法是使用asyncAngular 提供的管道。
this.data$ = this.myDataService
.get()
.pipe(
map(res => res.data),
tap(x => console.log(x))
);
Run Code Online (Sandbox Code Playgroud)
然后在模板中:
<div *ngFor="let data of (data$ | async)">
Hello {{data}}
</div>
Run Code Online (Sandbox Code Playgroud)
这种方法有很多好处,比如更干净的代码、避免内存泄漏、最佳性能、可维护性、轻松迁移到OnPush更改检测策略以及 RxJS 的强大使用。
我知道这对于初学者来说很难理解,但由于 RxJS 的错误使用,我经常看到复杂的 Angular 应用程序。