您可能都知道,您需要取消订阅观察器以防止内存泄漏。@Component的角度@Unsubscribe装饰器
我不明白为什么不只是创造@Uncsubscribe装饰商在您使用观测量组件类,它会经过的所有属性和退订都在破坏预订。
或甚至更多的糖:扩展@组件修饰器添加这样的行为。
现在问题:这个解决方案的缺陷是什么?
您可能都知道,您需要取消订阅观察器以防止内存泄漏。@Component的角度@Unsubscribe装饰器
我不明白为什么不只是创造@Uncsubscribe装饰商在您使用观测量组件类,它会经过的所有属性和退订都在破坏预订。
或甚至更多的糖:扩展@组件修饰器添加这样的行为。
现在问题:这个解决方案的缺陷是什么?
实际上,有一篇关于this的好文章。
这里的概述
@AutoUnsubscribe(["one$", "two$"])
class TestComponent {
...
}
其中一个$和两个$是你的观测,它会自动退订在NgOnDestroy
如果您正在使用AOT,请确保您在添加NgOnDestroy您零件。请参阅this
如果我们没有直接声明它,你确定angular会在aot编译中运行'ngOnDestroy'方法吗? AOT对我们来说一直是个问题。那么有一个'takeUntil'和这样的实现有什么区别。在这两种情况下,我们必须在组件 – yurzui
@yurzui上声明'ngOnDestroy'钩子,谢谢你指出。我收回这个实现没有缺陷。使用AOT可能是此实现的问题。我会进一步调查这个 – brijmcq
这里是它被检查的地方https://github.com/angular/angular/blob/master/packages/compiler/src/aot/static_reflector.ts#L255-L268 – yurzui
_why不只是创建@Uncsubscribe装饰器_ - 如何?你可以表演吗? –