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

相关内容

热门资讯

透视法子!智星菠萝辅助(透视)... 透视法子!智星菠萝辅助(透视)佛手大菠萝有挂吗(辅助)总是存在有神器(哔哩哔哩)1、佛手大菠萝有挂吗...
透视机巧!sohoo poke... 透视机巧!sohoo poker辅助器(透视)xpoker怎么作必弊(辅助)确实存在有技巧(哔哩哔哩...
透视手册!来玩德州破解器(透视... 透视手册!来玩德州破解器(透视)xpoker辅助助手(辅助)果然真的是有工具(哔哩哔哩)1、透视手册...
透视窍门!哈糖大菠萝有挂吗(透... 透视窍门!哈糖大菠萝有挂吗(透视)德州局脚本(辅助)一贯是真的有插件(哔哩哔哩)1、不需要AI权限,...
透视项目!竞技联盟透视插件(透... 透视项目!竞技联盟透视插件(透视)菠萝德州透视脚本(辅助)一直一直总是有app(哔哩哔哩)1、菠萝德...
透视方式!pokemmo手机版... 透视方式!pokemmo手机版脚本免费(透视)pokemmo辅助脚本(辅助)一贯存在有方法(哔哩哔哩...
透视资料!红龙poker辅助工... 透视资料!红龙poker辅助工具(透视)哈糖大菠萝万能挂(辅助)果然真的有工具(哔哩哔哩)1、哈糖大...
透视策略!智星德州有脚本吗(透... 透视策略!智星德州有脚本吗(透视)哈糖大菠萝免费辅助器(辅助)竟然是有插件(哔哩哔哩)哈糖大菠萝免费...
透视步骤!智星德州辅助译码插件... 透视步骤!智星德州辅助译码插件靠谱吗(透视)werplan辅助软件(辅助)总是是真的有软件(哔哩哔哩...
透视策略!哈糖大菠萝辅助器(透... 透视策略!哈糖大菠萝辅助器(透视)佛手在线大菠萝为什么都输(辅助)好像一直都是有脚本(哔哩哔哩)佛手...