ngOnChanges()方法的触发节点与调用时机是什么?
ngOnChanges() 触发时机说明
ngOnChanges() 是Angular组件/指令的生命周期钩子,触发节点和调用时机如下:
触发节点
它会在组件输入属性(通过@Input装饰器绑定的属性)发生变更时触发,且触发时机早于ngOnInit(),后续每次输入属性有变更都会被调用。
具体调用的判断逻辑
Angular通过对比输入属性的引用/值来决定是否调用该钩子:
- 对于基本数据类型(字符串、数字、布尔值等):当属性的值发生变化时,
ngOnChanges()就会被调用。 - 对于引用数据类型(对象、数组等):只有当属性的引用发生变化时(比如给属性重新赋值一个新的对象/数组),
ngOnChanges()才会触发。如果只是修改引用类型内部的属性(比如user.name = '张三'),因引用未改变,钩子不会触发。
简言之,你列出的两个场景需结合数据类型区分:基本类型看值变化,引用类型看引用变化。
内容的提问来源于stack exchange,提问作者maxxi
相关产品推荐
相关产品推荐

