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() 不会被调用。

相关内容

热门资讯

于此同时!wepoker透视辅... 于此同时!wepoker透视辅助下载(透视)玖游卡五星辅助(竟然是真的辅助工具)-哔哩哔哩1、下载好...
透视妙招!约局吧开挂(透视)哈... 透视妙招!约局吧开挂(透视)哈糖大菠萝开挂(辅助)总是真的有攻略(哔哩哔哩)1、让任何用户在无需哈糖...
透视科技!we-poker正规... 透视科技!we-poker正规吗(透视)微信小程序微乐辅助器教程(总是存在有辅助插件)-哔哩哔哩1、...
透视步骤!德州来玩辅助器(透视... 透视步骤!德州来玩辅助器(透视)pokemmo手机版脚本(辅助)原来真的有app(哔哩哔哩)1、po...
透视ai代打!如何下载德普之星... 透视ai代打!如何下载德普之星辅助软件(透视)微信小程序万能修改器(原来是真的辅助插件)-哔哩哔哩微...
透视模块!德州局透视脚本免费版... 透视模块!德州局透视脚本免费版下载手机版(透视)uupoker透视(辅助)一贯真的是有脚本(哔哩哔哩...
目前!wepoker私人局辅助... 目前!wepoker私人局辅助挂(透视)天酷大厅辅助(切实有辅助工具)-哔哩哔哩天酷大厅辅助是不是有...
透视攻略!来玩app破解(透视... 透视攻略!来玩app破解(透视)约局吧怎么看有没有挂(辅助)切实真的有神器(哔哩哔哩)1、玩家可以在...
近期!微扑克微乐辅助(透视)兴... 近期!微扑克微乐辅助(透视)兴动互娱软件下载(一贯有辅助修改器)-哔哩哔哩1、兴动互娱软件下载模拟器...
透视烘培!pokemmo脚本辅... 透视烘培!pokemmo脚本辅助器下载(透视)pokemmo辅助器脚本下载(辅助)一直有技巧(哔哩哔...