请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

關於 ngDoCheck & ngAfterViewChecked 問題

老師 請問 ngDoCheck & ngAfterViewChecked 這兩個鉤子不是都是髒值檢測完成後執行嗎? 差異在哪呢?

thanks~

正在回答

2回答

接灰的电子产品 2019-06-19 23:48:54

ngDoCheck 不是在脏值检测之后调用,而是让你可以参与到脏值检测的过程。它调用的非常频繁,每个脏值检测都会引发,所以要尽量避免使用,以避免性能问题。它的主要用途是如果你发现有些内容是 Angular 无法检测到的,这个 hook 使你可以提供自定义的检测参与到整个脏值检测过程中。

ngAfterViewChecked 只是在子视图的绑定元素被检测时才被调用


0 回复 有任何疑惑可以回复我~
提问者 阿倫 2019-06-19 23:59:40

老師,所以ngDoCheck 是所有引發非同步事件都會觸法,而 ngAfterViewChecked只有子視圖綁定檢測時被調用嗎?
另外請問Angular 何時會做綁定檢測?

0 回复 有任何疑惑可以回复我~
  • 默认策略是无论 view 视图中还是类中的绑定或变量值发生改变,或者事件、异步(setinterval, settimeout)操作都会引发脏值检测。OnPush 策略只检测 @Input 属性值的变化,也就是子组件的脏值检测由父组件设置时才发生。但事件和setinterval, settimeout操作仍然会引发脏值检测。
    回复 有任何疑惑可以回复我~ 2019-06-20 00:18:59
  • 提问者 阿倫 回复 接灰的电子产品 #2
    謝謝老師
    回复 有任何疑惑可以回复我~ 2019-06-20 00:31:43

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信