@Component 的 Angular @Unsubscribe 装饰器

Ste*_*rov 0 rxjs angular

你可能都知道你需要取消订阅Observables以防止内存泄漏

我不明白为什么不只为使用 Observables 的组件类创建@Uncsubscribe装饰器,它将遍历所有属性并取消订阅destroy上的所有订阅。

或者更多的糖:扩展@Component装饰器来添加这样的行为。

现在的问题是:这个解决方案可能存在哪些缺陷?

bri*_*mcq 5

实际上,有一篇关于此的好文章。

这是概述

@AutoUnsubscribe(["one$", "two$"])
class TestComponent {
  ...
}
Run Code Online (Sandbox Code Playgroud)

其中 one$ 和two$ 是您的可观察量,它将在 NgOnDestroy 中自动取消订阅

如果您使用 AOT,请确保在组件中添加 NgOnDestroy。看到这个