6.变更检测机制和DoCheck钩子

(1)目的:保证组件属性变化和浏览器的显示同步,浏览器里面发生任何异步变化都会触发“变更检测”,当变更检测运行时,会检测应用中所有的绑定关系。(在1中必须用ngclick,想用原生的,必须用apply,在2中有了zone.js,随便用。变更检测只是把属性和页面模板同步,不会改变属性值。每个组件会生成它自己的变更检测器,当检查到变化,zone会根据组件变更检查策略来检查策略,来更新模板)

(2)检测策略:

      A:Default策略:检查所有组件

      B.Onpush策略:阻止检查继续走下去

(3)DoCheck钩子的调用

演示:

1.子组件


效果:

解析:点,点,点点击事件会触发变更检测机制,DoCheck会调用,改了tom值,变化捕捉到,点,点,计数器清空。钩子会检测什么时候会发生变化,小心钩子频繁调用,发生变化,都会被调用,大部分调用无关,很显然用这个钩子要非常高效,要不然会引起性能问题,有check关键字的钩子,变更检测发生,所有写check关键字钩子都会被调用。所有写有check关键字的钩子用的时候要非常高效。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 原文传送门翻译说明: 本文翻译采用意译并对原文进行适当排版以方便阅读。术语采用加粗斜体表示, 术语第一次出现时其后...
    萧哈哈阅读 4,728评论 2 7
  • 原文链接 探索底层的实现和用例 如果像我一样想要对Angular中的变化检测机制有一个全面的了解,您将不得不去探索...
    CK110阅读 1,213评论 0 2
  • 我对“概念”的今日笔记: 1.概念是连接现实现象和理论世界的桥梁。 2.人和人之间的沟通最大障碍就是概念,假设有人...
    鹤月凉阅读 300评论 4 3
  • 五、捅了马蜂窝 林满堂不是跟任何人都没话说,首先他确实怀念王翠妮,那个音容笑貌怎么也挥之不去,再怎么刻意也抹不掉他...
    赵建铜阅读 619评论 0 4