我正在尝试使用多个组件构建一个angular2应用程序。它使用自定义和许多第三方UI组件构建。我使用的一个树组件,使用@Hostlistener在文档上注册一个全局keyDown监听器。我的一个组件有一个包含多个选择的表。因此,使用' ctrl'进行简单的选择操作key触发树组件的处理程序。
我的示例用例
我在我的组件中的keydown上注册了一个监听器,它有如下所示的树:
import {HostListener, KeyboardEvent} from '@angular/core';
@Component({...})
export class MyTreeComponent {
@HostListener('document:keydown', ['$event'])
onKeyDown(event:KeyboardEvent) {
// check if the event is a delete and perform delete action
}
}
所以,如果我使用ctrl'进行多选键入我的tablecomponent' onKeyUp()'所有4-5 MyTreeComponent实例中的所有实例都被触发了太多次。
这显着降低了性能。有什么想法可以改进吗?
还有几个问题
提前感谢您的帮助