角度绑定@HostBinding(窗口:调整大小)和Rxjs&39;FromEvent(窗口,#39;调整大小';)之间的差异 [英] Difference Between Angular's @HostBinding( 'window:resize' ) And Rxjs' fromEvent( window, 'resize' )
本文介绍了角度绑定@HostBinding(窗口:调整大小)和Rxjs&39;FromEvent(窗口,#39;调整大小';)之间的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只是想知道用其中一个代替另一个有什么好处。
@HostListener( 'window:resize' )
doSomething(): void {
// ...throttle with setTimeout and clearTimeout maybe...
}
和
fromEvent( window, 'resize' ).pipe(
// ... debounceTime, takeUntil etc.
).subscribe( () => {
doSomething();
})
这真的只是一个上下文问题(例如,使用管道()可以更轻松地处理事件流),还是可观察到的更"现代",或者根本不重要?
谢谢!
推荐答案
fromEvent
将为您提供更大的执行灵活性和管道衬砌,并且可以在NgZone
上下文之外绑定。
@Hostlistener
有一个优势,即您不必在激发事件后手动触发更改检测。当您的组件使用OnPush
更改检测策略时,您确实需要使用Observables
,这是建议的(但不是默认的)策略。使用fromEvent
时还有其他需要执行此操作的情况,但这些都是非常边缘的情况。
HostListener
的另一个优点是,组件销毁时不需要取消订阅,因为这是自动完成的。
因此,这主要取决于偏好和上下文。
ad
有第三方libraries(我的)扩展了HostListener
和模板事件绑定内容,提供了去抖动和其他很酷的功能。
这篇关于角度绑定@HostBinding(窗口:调整大小)和Rxjs&39;FromEvent(窗口,#39;调整大小';)之间的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文