我正在为下拉切换构建指令。我所看到的是有两种方法来构建这个指令。最佳实践应该是什么?
方法 1 - 使用 @HostBinding()
@HostBinding('class.open') isOpen: boolean = false;
@HostListener('click') toggleFunc(){
this.isOpen = !this.isOpen;
}
方法 2 - 使用 ElementRef 和 Renderer
isOpen: boolean = false;
constructor(private elementRef: ElementRef, private renderer: Renderer2){}
@HostListener('click') onToggle(){
this.isOpen = !this.isOpen;
if(this.isOpen){
this.renderer.addClass(this.elementRef.nativeElement, "open");
}
else{
this.renderer.removeClass(this.elementRef.nativeElement, "open");
}
}
方法 1 看起来更好,因为它只有 3 行代码(无忧)。但最佳实践应该是什么?创建此类指令时我应该使用什么?
是否@HostBinding()有ElementRef/Renderer不同的用例?