Angular markForCheck是否对大型组件树的性能有害?
例如,我有一棵巨大的组件树Angular markForCheck是否对大型组件树的性能有害?,angular,Angular,例如,我有一棵巨大的组件树 Comp1 > Comp2 > Comp3 > ... > Comp99 > Comp100 如果在Comp99中,我使用事件绑定 <Comp100 (event)="onEvent()"></Comp100> 使用自定义指令绑定事件,并且不在此指令内调用markForCheck <div [appBind]="{'click': onClick, 'mousedown': onMouseDown}"&g
Comp1 > Comp2 > Comp3 > ... > Comp99 > Comp100
如果在Comp99
中,我使用事件绑定
<Comp100 (event)="onEvent()"></Comp100>
使用自定义指令绑定事件,并且不在此指令内调用markForCheck
<div [appBind]="{'click': onClick, 'mousedown': onMouseDown}"></div>
编写自定义异步管道,但不要调用markForCheck
调用,例如,detectChanges
但是有一种感觉,我错过了一些东西。解决此性能问题的常用技巧是什么?这是否回答了您的问题?这个理论中的问题不是您的更改检测,而是您的组件树有100个组件深。让angular做这件事,重新思考您的架构,使其更广泛,而不是deeper@JoshuaChan,不,我想知道如何不为所有分支调用cd,并使用事件绑定或异步pipe@bryan60,即使我得到了由10个组件组成的分支,我也不想检查经常触发的某个事件的所有分支。如文本编辑器中的文本/选择更改。或者弹出式移动。在我看来,有更好的解决方案,比如取消公告事件
<Comp100 [onEvent]="onEvent"></Comp100>
onEvent() {}
<div [appBind]="{'click': onClick, 'mousedown': onMouseDown}"></div>