什么是变更检测?聊聊angular的变更机制

什么是变更检测?下面本篇文章带大家聊聊Angular中的变更检测机制,介绍一下状态变化如何通知变更检测、Angular变更检测策略,希望对大家有所帮助。

 

一、什么是变更检测

  • 概括: 一种更改检测机制,用于遍历组件树,检查每个组件的变化,并在组件属性发生变化的时候触发DOM的更新。【相关教程推荐:《angular教程》】
  • 变更检测的基本任务: 获得程序的内部状态并使之在用户界面可见。这个状态可以是任何的对象、数组、基本数据类型。

二、什么引起了变更

事件驱动,来源有以下三大类:

  • 事件:页面 click、submit、mouse down……
  • XHR:从后端服务器拿到数据
  • Timers:setTimeout()、setInterval()

这几点有一个共同点,就是它们都是异步的,也就是说,所有的异步操作是可能导致数据变化的根源因素,所以每当执行一些异步操作时,我们的应用程序状态可能发生改变,而这时则需要去更新视图

三、状态变化怎么通知变更检测

Angular当中则接入了NgZone,由它来监听Angular所有的异步事件,Angular 在启动时会重写(通过 Zone.js)部分底层浏览器 API(暴力的拦截了所有的异步事件)。

常见的有两种方式来触发变化检测,一种方法是基于组件的生命周期钩子

ngAfterViewChecked() {     console.log('cluster-master.component cd');   }

商匡云商
Logo
注册新帐户
对比商品
  • 合计 (0)
对比
0
购物车