请说说在Angular中组件初始化时,生命周期钩子的调用顺序
在Angular中,组件的生命周期钩子按照以下顺序被调用:
- ngOnChanges():当Angular检测到数据绑定输入属性的值发生变化时调用。这个方法在ngOnInit()之前以及每次数据绑定输入属性变化时都会被调用。注意,ngOnChanges()只对由父组件到子组件的值传递有效,不能监听组件内部变化的值。
- ngOnInit():在Angular第一次显示数据绑定和首次调用ngOnChanges()之后,初始化完成后调用ngOnInit()。一般用于执行组件的初始化操作或启动某些服务。这个方法只会被调用一次。
- ngDoCheck():在每次Angular的变更检测运行时调用。ngDoCheck()可以得到每次数据变化前后的值,因此通常用于开发自定义的变更检测逻辑。
- ngAfterContentInit():当把内容投影进组件视图之后调用。这个钩子在初始化完组件视图及其子视图/内容之后调用。第一次ngDoCheck()之后,且在ngAfterViewInit()之前调用。只调用一次。
- ngAfterContentChecked():每次完成被投影组件内容的变更检测之后调用。ngAfterContentChecked()在ngAfterContentInit()和每次ngDoCheck()之后调用。
- ngAfterViewInit():初始化完组件视图及其子视图/DOM后调用。第一次ngAfterContentChecked()之后调用,只调用一次。此时,组件的DOM已经构建完成,可以进行DOM操作了。
- ngAfterViewChecked():每次做完组件视图和子视图的变更检测之后调用。ngAfterViewChecked()在ngAfterViewInit()和每次ngAfterContentChecked()之后调用。
- ngOnDestroy():当Angular知道组件实例将不再使用时调用。在这个生命周期钩子中,可以执行任何必要的清理操作,如取消订阅可观察对象,断开事件处理器,清理定时器等。这个钩子只会调用一次。
以上就是Angular中组件的生命周期钩子的调用顺序。
浙公网安备 33010602011771号