You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ngOnChanges()方法的触发节点与调用时机是什么?

ngOnChanges() 触发时机说明

ngOnChanges() 是Angular组件/指令的生命周期钩子,触发节点和调用时机如下:

触发节点

它会在组件输入属性(通过@Input装饰器绑定的属性)发生变更时触发,且触发时机早于ngOnInit(),后续每次输入属性有变更都会被调用。

具体调用的判断逻辑

Angular通过对比输入属性的引用/值来决定是否调用该钩子:

  • 对于基本数据类型(字符串、数字、布尔值等):当属性的值发生变化时,ngOnChanges()就会被调用。
  • 对于引用数据类型(对象、数组等):只有当属性的引用发生变化时(比如给属性重新赋值一个新的对象/数组),ngOnChanges()才会触发。如果只是修改引用类型内部的属性(比如user.name = '张三'),因引用未改变,钩子不会触发。

简言之,你列出的两个场景需结合数据类型区分:基本类型看值变化,引用类型看引用变化。

内容的提问来源于stack exchange,提问作者maxxi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:52:10