MST

星途 面试题库

面试题:Angular组件生命周期钩子函数及其应用场景

请列举至少4个Angular组件的生命周期钩子函数,并说明它们各自的触发时机以及在实际开发中通常的应用场景。
38.0万 热度难度
前端开发Angular

知识考点

AI 面试

面试题答案

一键面试
钩子函数触发时机实际开发应用场景
ngOnInit组件初始化完成后调用,此时组件的输入属性已被绑定,但是视图还未渲染用于组件数据的初始化,如获取后端数据、设置默认值等。例如从API获取用户信息并显示在组件中。
ngOnChanges当组件的输入属性(@Input()装饰的属性)发生变化时触发,首次初始化时也会触发用于监听输入属性的变化,并根据新值执行相应操作。比如在父子组件通信中,父组件传递新数据给子组件,子组件可以在ngOnChanges中响应新数据变化做相应处理。
ngDoCheck每个变更检测周期都会触发用于实现自定义的变更检测逻辑,当默认的Angular变更检测机制不能满足需求时使用。例如检测一些复杂对象内部属性的变化,Angular默认检测不到这种变化,就可以在此函数内自定义检测逻辑。
ngAfterViewInit组件的视图(包括子视图)初始化完成后调用通常用于操作视图相关的DOM元素,因为此时视图已渲染完成,可以安全地获取和操作DOM。比如初始化第三方UI库的组件,这些组件往往依赖于真实DOM结构才能正常工作。
ngOnDestroy组件销毁前调用用于执行清理工作,如取消订阅可观察对象(防止内存泄漏)、解绑事件监听器等。例如取消HTTP请求订阅,避免组件销毁后仍有未完成的请求占用资源。