angular中的DoCheck

紧跟在每次执行变更检测时的 ngOnChanges() 和 首次执行变更检测时的 ngOnInit() 后调用。

ngDoCheck() 可以检测一切数据的变化,鼠标移动等操作也会执行 ngDoCheck(),只有很少的调用是由于数据修改而触发。

有时,父组件传入的是一个对象,ngOnChanges无法检测到对象内部数据的变化,此时就可以使用ngDoCheck来识别。可以在组件初始化时保存该变量,然后在ngDoCheck中与最新的值进行比较:

 ngOnInit(): void {
    // 保存需要检测变化的变量
    this.status = this.row?.status;
  }

  ngDoCheck(): void {
    if (this.row && this.row.status !== this.status) {
      this.status = this.row.status;

    // 识别到变化后进行其他操作
     ...
    }
  }


 

猜你喜欢

转载自blog.csdn.net/ActiveXObject/article/details/115216552