# Components và vòng đời (Angular) > Component lifecycle hooks, ngOnInit, ngOnChanges, ngOnDestroy, ngAfterViewInit, component communication, @Input, @Output - 20 câu hỏi phỏng vấn - Junior - [Câu hỏi phỏng vấn: Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van.md) ## 1. Lifecycle hook trong Angular là gì? **Câu trả lời** Lifecycle hook là một phương thức đặc biệt được Angular gọi tự động tại các thời điểm quan trọng trong vòng đời của một component hoặc directive. Các hook này cho phép thực thi code tại các giai đoạn cụ thể như tạo, cập nhật hoặc hủy. Các hook phổ biến nhất là ngOnInit, ngOnChanges và ngOnDestroy. ## 2. ngOnInit được gọi khi nào? **Câu trả lời** ngOnInit được gọi một lần sau ngOnChanges đầu tiên, khi tất cả các thuộc tính @Input đã được khởi tạo. Đây là hook lý tưởng để khởi tạo dữ liệu component, bắt đầu subscriptions hoặc gọi services. Nó được ưu tiên hơn constructor cho logic khởi tạo vì tất cả các bindings đều được đảm bảo có sẵn. ## 3. Sự khác biệt chính giữa ngOnChanges và ngOnInit là gì? **Câu trả lời** ngOnChanges được gọi mỗi khi giá trị thuộc tính @Input thay đổi và nhận một đối tượng SimpleChanges chứa giá trị cũ và mới. ngOnInit chỉ được gọi một lần sau lần khởi tạo đầu tiên. Sử dụng ngOnChanges để phản ứng với các thay đổi input và triển khai logic phụ thuộc vào các giá trị @Input. Ưu tiên ngOnInit cho khởi tạo một lần như gọi API hoặc cấu hình ban đầu. ## Còn 17 câu hỏi nữa - Tại sao sử dụng ngOnDestroy trong một component? - Lifecycle hooks được gọi theo thứ tự nào khi tạo một component? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Angular khác - [Kiến thức cơ bản TypeScript](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/typescript-basics.md): 25 câu hỏi, Junior - [TypeScript Nâng cao](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/typescript-advanced.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/angular-fundamentals.md): 20 câu hỏi, Junior - [Services & Dependency Injection](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/services-dependency-injection.md): 20 câu hỏi, Junior - [Tổ chức Module Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/modules-organization.md): 22 câu hỏi, Mid-Level - [Angular CLI](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/angular-cli.md): 18 câu hỏi, Junior - [Directives và Pipes](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/directives-pipes.md): 22 câu hỏi, Mid-Level - [Routing và Điều hướng](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/routing-navigation.md): 24 câu hỏi, Mid-Level - [Reactive Forms](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/forms-reactive.md): 26 câu hỏi, Mid-Level - [Template-driven Forms](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/forms-template-driven.md): 16 câu hỏi, Mid-Level - [Kiến Thức Cơ Bản RxJS](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/rxjs-fundamentals.md): 22 câu hỏi, Mid-Level - [Operator RxJS](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/rxjs-operators.md): 24 câu hỏi, Mid-Level - [HttpClient và lệnh gọi API](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/http-client.md): 22 câu hỏi, Mid-Level - [Quản lý state cơ bản](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/state-management-basics.md): 20 câu hỏi, Mid-Level - [Change Detection](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/change-detection.md): 20 câu hỏi, Mid-Level - [Angular Signals](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/angular-signals.md): 20 câu hỏi, Mid-Level - [Standalone Components](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/standalone-components.md): 18 câu hỏi, Mid-Level - [Unit Testing trong Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/testing-unit.md): 22 câu hỏi, Mid-Level - [Kiểm thử End-to-End](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/testing-e2e.md): 18 câu hỏi, Mid-Level - [Build và tối ưu hóa](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/build-optimization.md): 20 câu hỏi, Mid-Level - [Nền tảng NgRx](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/ngrx-fundamentals.md): 24 câu hỏi, Senior - [NgRx nâng cao](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/ngrx-advanced.md): 24 câu hỏi, Senior - [Kiến trúc Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/angular-architecture.md): 22 câu hỏi, Senior - [Tối ưu hiệu năng](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật và thực tiễn tốt nhất](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/security-best-practices.md): 20 câu hỏi, Senior - [Các mẫu RxJS nâng cao](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/advanced-rxjs-patterns.md): 22 câu hỏi, Senior - [Angular Universal và SSR](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/angular-universal-ssr.md): 20 câu hỏi, Senior - [Micro-frontend Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/micro-frontends-angular.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/components-lifecycle