在 Angular 中,更改检测是由 Zone.js 库来管理的。当发生一些潜在的更改时,Angular 会自动启动更改检测以更新视图。其中一种触发更改检测的方式是输入属性的更改。
例如,如果有一个带有 @Input 装饰器的属性,当这个属性的值发生变化时,Angular 会触发更改检测。以下是一个简单示例:
@Component({
selector: 'app-my-component',
template: `
My name is {{name}}
`
})
export class MyComponent {
@Input() name: string;
}
如果在父组件中改变了 MyComponent 的 name 属性的值,Angular 将会启动更改检测来更新 MyComponent 视图中的名字。
因此,可以得出结论:Angular 中的更改检测确实也由 @Input 改变触发。