# Tối ưu hiệu năng (Angular) > OnPush strategy, trackBy, virtual scrolling, lazy loading, preloading, bundle size, Core Web Vitals, profiling - 22 câu hỏi phỏng vấn - Senior - [Câu hỏi phỏng vấn: Angular](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van.md) ## 1. Chiến lược OnPush trong Angular là gì? **Câu trả lời** OnPush là chiến lược change detection giới hạn việc kiểm tra cho các trường hợp khi input của component thay đổi theo tham chiếu hoặc khi sự kiện nội bộ được kích hoạt. Tối ưu hóa này giảm đáng kể số chu kỳ phát hiện trong các ứng dụng phức tạp. Áp dụng OnPush mặc định trên các component trình bày là thực hành tốt nhất để cải thiện hiệu năng. ## 2. Vai trò chính của trackBy trong directive ngFor là gì? **Câu trả lời** trackBy cho phép Angular xác định duy nhất từng phần tử trong danh sách, do đó tránh việc tạo lại hoàn toàn DOM khi cập nhật. Nếu không có trackBy, Angular sẽ hủy và tạo lại tất cả các phần tử ngay cả khi chỉ có một phần tử thay đổi. Sử dụng trackBy với một định danh duy nhất sẽ cải thiện đáng kể hiệu năng của các danh sách động. ## 3. Lazy loading trong ngữ cảnh routing Angular là gì? **Câu trả lời** Lazy loading là kỹ thuật tải module trì hoãn chỉ tải xuống code khi route tương ứng được kích hoạt. Điều này giảm kích thước bundle ban đầu và tăng tốc lần hiển thị đầu tiên của ứng dụng. Các module được lazy load được định nghĩa với loadChildren trong cấu hình route. ## Còn 19 câu hỏi nữa - Phương thức nào cần kích hoạt để buộc kiểm tra với OnPush? - Lợi ích chính của virtual scrolling đối với các danh sách lớn là gì? Đă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 - [Components và vòng đời](https://sharpskill.dev/vi/technologies/angular/cau-hoi-phong-van/components-lifecycle.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 - [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/performance-optimization