使用 ngOnChanges
当使用 @Input() 装饰器时,Angular 只会检测输入属性的引用,如果引用没有改变,那么就不会重新渲染。为了使Angular能够在输入属性变化时重新渲染组件,可以使用 ngOnChanges 生命周期钩子。
例如,在下面的示例中,组件中有一个输入属性 name,如果该属性的值发生变化,组件将会重新渲染:
@Component({ selector: 'app-my-component', template: '
My name is {{name}}
' }) export class MyComponent implements OnChanges { @Input() name: string;ngOnChanges(changes: SimpleChanges) { console.log(changes); } }
在这个例子中,ngOnChanges 实现了接受从 Angular 传递来的改变对象。这个对象包含当前输入属性的值和前一个输入属性的值,以及关于这些变化的其他元数据。
当输入属性变化时,ngOnChanges 会被调用,并根据需要更新组件的状态。这个方法的实现可以根据组件的需要来改变。