浅谈Angular的脏检查机制
没有学过 Angular,只是和朋友闲聊的时候谈到这个,本篇作为一个记录,谈谈我理解的脏检查
angular 不会去监听数据变动,而是当事件触发(模板绑定/主动触发)时,更新数据,最后会执行一个重渲染的操作
所以这一套机制很简单,触发了会改变应用程序状态的函数,会触发模板重渲染,一般有这几种活动:
- 事件:click,change
- xhr:远程数据获取
- 定时器
当然 由于没学过,不知道理解对不对
200318 更新:
上述几种行为,都是一个宏任务,angular 对这些 api 进行了封装。
在这个宏任务结束之后,会执行数据的批量更新,并重新编译模板生成虚拟 dom 树,后面的 diff 就和 react 类似了
后面的步骤,可能是像 vue/react 那样在微任务中进行,也可能就是在宏任务末尾进行。具体方案没有研究
编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56