我应该在我的组件中始终使用ChangeDetectionStrategy.OnPush吗?
我总是听说OnPush非常神奇,它解决了很多问题,加快了Angular应用的速度,甚至摆脱了NgZone。但如果是这样,为什么不使用ng g component默认生成呢
如果它如此神奇,那么我们应该一直使用它吗?
我正在使用markForCheck来检测我的角分量(它有changeDetection: ChangeDetectionStrategy.OnPush)中的变化,最初,我将markForCheck放在函数的开头,它为我工作,然后我意识到,在所有函数操作完成之后,把它放在这里会更有意义。
在这两种方法中,角都是检测变化的,如果最初调用它,或者在动作完成之后。
那么,如果有人能够证明使用markForCheck的正确方式是什么呢?
functionName() { // It works at both places
this.cd.markForCheck();
//
.... So
我正在尝试构建一个只在非生产版本中显示的小dev组件。
我认为需要跟踪的一件事情是,我在添加各种功能时触发的变更检测周期的数量,以确保我没有做一些真正不合格的事情。就像在菜单图标上有鼠标切换和鼠标退出事件来改变它的颜色。
遗憾的是,我似乎无法让它真正显示在视图上,而不仅仅是在控制台中。
您可以在触发更改检测周期的按钮上悬停,您可以在浏览器控制台(而不是stackblitz控制台)中看到重新计算该getter多少次的计数器。
捕捉其本质的简化代码:
public changes = 0;
public get changeDetection(): boolean {