[Angular] Angular Custom Change Detection with ChangeDetectorRef

Each component has its own ChangeDetectorRef, and we can inject ChangeDetectorRef into constructor:

export class ChildComponent implements OnInit {

  constructor(
    private cdr: ChangeDetectorRef
  )

 

For example if you have a huge list can be updated in real time though some real time database.

Update in real time is really expensive for huge list. 

 

We have build a custom change detector, for example, update every 5 seconds, to check changes, to do that, we need to two things,

1. Disable default change detector

2. Check for changes every 5 seconds.

复制代码
import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
import { ListService } from './list.service';

@Component({
  selector: 'app-child',
  templateUrl: './child.component.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {

  constructor(
    private cdr: ChangeDetectorRef,
    private dataProvider: ListService
  ) { 
    // disable default change detector
    cdr.detach();
    // now every 5second, do a check for its child tree
    setInterval(() => { this.cdr.detectChanges(); }, 5000);
  }

  ngOnInit() {
  }

}
复制代码

 

There is another API: reattach() which uses for reset to default Angular change dectctor.

 

 

posted @   Zhentiw  阅读(384)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-01-28 [MST] Defining Asynchronous Processes Using Flow
2018-01-28 [MST] Restore the Model Tree State using Hot Module Reloading when Model Definitions Change
2018-01-28 [MST] Store Store in Local Storage
2018-01-28 [MST] Create an Entry Form to Add Models to the State Tree
2018-01-28 [MST] Remove Model Instances from the Tree
2018-01-28 [MST] Build Forms with React to Edit mobx-state-tree Models
点击右上角即可分享
微信分享提示