加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular 的 ChangeDetectorRef

发布时间:2020-12-17 17:19:07 所属栏目:安全 来源:网络整理
导读:监测页面数据变化 angular 会在我们的组件发生变化的时候,对我们的组件执行变化检测,如果检测到我们的数据发生了变化,就会执行某些操作,如修改绑定数据的时候更新视图。这样一来,当我们的组件数据比较多的时候,angular就会有很多操作在静悄悄地进行,

监测页面数据变化
angular 会在我们的组件发生变化的时候,对我们的组件执行变化检测,如果检测到我们的数据发生了变化,就会执行某些操作,如修改绑定数据的时候更新视图。这样一来,当我们的组件数据比较多的时候,angular就会有很多操作在静悄悄地进行,因此,就需要ChangeDetectorRef来实时检测数据的变化并更新视图数据
1、引入ChangeDetectorRef模块
import { ChangeDetectorRef?} from “angular”;
2、声明
constructor(private cd:ChangeDetectorRef) {
}
3、引用
this.cd.detectChanges();实时检测页面及其子元素的变化

?

changeDetection: ChangeDetectionStrategy.OnPush
当使用 OnPush 策略的时候,若输入属性没有发生变化,组件的变化检测将会被跳过

ChangeDetectorRef 是组件的变化检测器的引用

export abstract class ChangeDetectorRef {
  abstract markForCheck(): void;
  abstract detach(): void;
  abstract detectChanges(): void;
  abstract reattach(): void;
}
markForCheck() - 在组件的 metadata 中如果设置了 changeDetection: ChangeDetectionStrategy.OnPush 条件,那么变化检测不会再次执行,除非手动调用该方法。 detach() - 从变化检测树中分离变化检测器,该组件的变化检测器将不再执行变化检测,除非手动调用 reattach() 方法。 reattach() - 重新添加已分离的变化检测器,使得该组件及其子组件都能执行变化检测 detectChanges() - 从该组件到各个子组件执行一次变化检测

  

onPush()策略时 浅拷贝数据触发输入属性的变化以触发检查

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读