Angular中的detectChanges()不会触发ngDoCheck()
创始人
2024-10-31 03:30:52
0

使用 markForCheck() 方法代替 detectChanges() 方法。这种情况通常发生在组件使用了 OnPush 变更检测策略时。

示例代码:

@Component({ selector: 'app-example', templateUrl: './example.component.html', changeDetection: ChangeDetectionStrategy.OnPush }) export class ExampleComponent implements OnInit, DoCheck {

@Input() data: any;

constructor(private cdr: ChangeDetectorRef) { }

ngOnInit() { }

ngDoCheck() { console.log('ngDoCheck() called'); // 这条语句永远不会被执行 }

updateData() { // this.cdr.detectChanges(); // 不会触发 ngDoCheck() this.cdr.markForCheck(); // 会触发 ngDoCheck() }

}

在上面的代码中,使用了 OnPush 变更检测策略,同时实现了 DoCheck 接口。当调用 updateData() 方法时,使用了 markForCheck() 方法来通知 Angular 组件需要检测更新,这会触发 ngDoCheck() 方法的执行。相反,如果使用 detectChanges() 方法,ngDoCheck() 不会被调用。

相关内容

热门资讯

透视科技!aa poker透视... 透视科技!aa poker透视软件(透视)好像是有辅助软件(有挂解密)-哔哩哔哩1、完成aa pok...
透视好友!aapoker发牌逻... 透视好友!aapoker发牌逻辑(透视)本来是真的辅助辅助器(有挂细节)-哔哩哔哩1、每一步都需要思...
事发当天!如何下载德普之星辅助... 事发当天!如何下载德普之星辅助软件(透视)好像是真的辅助安装(有挂细节)-哔哩哔哩所有人都在同一条线...
这一现象值得深思!pokerm... 这一现象值得深思!pokermaster辅助器(透视)其实是有辅助神器(的确有挂)-哔哩哔哩1、玩家...
事发当天!德扑之心免费透视(透... 事发当天!德扑之心免费透视(透视)一贯真的是有辅助软件(讲解有挂)-哔哩哔哩1、下载好德扑之心免费透...
透视透视!德普之星辅助工具如何... 透视透视!德普之星辅助工具如何设置(透视)竟然真的有辅助辅助器(有挂猫腻)-哔哩哔哩1、德普之星辅助...
经调查!steampokerm... 经调查!steampokermaster辅助(透视)总是存在有辅助修改器(有挂详情)-哔哩哔哩1、s...
透视系统!hhpoker德州有... 透视系统!hhpoker德州有挂吗(透视)确实有辅助下载(有挂规律)-哔哩哔哩1、在hhpoker德...
透视工具!hhpoker软件可... 透视工具!hhpoker软件可以玩吗(透视)切实有辅助软件(有挂规律)-哔哩哔哩1、玩家可以在hhp...
经核实!xpoker辅助(透视... 经核实!xpoker辅助(透视)一贯是真的辅助安装(有挂秘诀)-哔哩哔哩亲,关键说明,xpoker辅...