Change Detection
Zone.js, các chiến lược change detection, chiến lược OnPush, ChangeDetectorRef, markForCheck, detectChanges, tối ưu hiệu năng
1Cơ chế change detection trong Angular là gì?
Cơ chế change detection trong Angular là gì?
Câu trả lời
Change detection là quy trình mà Angular phát hiện các thay đổi trong trạng thái ứng dụng và cập nhật DOM tương ứng. Theo mặc định, Angular sử dụng Zone.js để tự động phát hiện các sự kiện bất đồng bộ (clicks, HTTP requests, timers) và kích hoạt việc kiểm tra component từ gốc. Quá trình kiểm tra này duyệt cây component để xác định các sửa đổi cần áp dụng vào DOM.
2Vai trò của Zone.js trong Angular change detection là gì?
Vai trò của Zone.js trong Angular change detection là gì?
Câu trả lời
Zone.js là một thư viện vá các API bất đồng bộ gốc của trình duyệt (setTimeout, Promise, addEventListener, v.v.) để chặn việc thực thi của chúng. Khi một thao tác bất đồng bộ hoàn tất, Zone.js thông báo cho Angular, và Angular tự động kích hoạt change detection từ component gốc. Điều này cho phép Angular phát hiện thay đổi mà không cần can thiệp thủ công của lập trình viên.
3Sự khác biệt giữa chiến lược Default và OnPush là gì?
Sự khác biệt giữa chiến lược Default và OnPush là gì?
Câu trả lời
Chiến lược Default kiểm tra tất cả các component trong cây ở mỗi chu kỳ change detection, điều này có thể tốn kém. OnPush tối ưu bằng cách chỉ kiểm tra một component nếu các input của nó thay đổi (tham chiếu bất biến), nếu một sự kiện được phát ra từ template của nó, nếu async pipe nhận giá trị mới, hoặc nếu markForCheck() được gọi thủ công. OnPush giảm đáng kể số lần kiểm tra và cải thiện hiệu năng.
Làm cách nào để kích hoạt chiến lược OnPush trên một component?
Mục đích của ChangeDetectorRef trong một component Angular là gì?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Angular khác
Kiến thức cơ bản TypeScript
TypeScript Nâng cao
Kiến thức cơ bản về Angular
Components và vòng đời
Services & Dependency Injection
Tổ chức Module Angular
Angular CLI
Directives và Pipes
Routing và Điều hướng
Reactive Forms
Template-driven Forms
Kiến Thức Cơ Bản RxJS
Operator RxJS
HttpClient và lệnh gọi API
Quản lý state cơ bản
Angular Signals
Standalone Components
Unit Testing trong Angular
Kiểm thử End-to-End
Build và tối ưu hóa
Nền tảng NgRx
NgRx nâng cao
Kiến trúc Angular
Tối ưu hiệu năng
Bảo mật và thực tiễn tốt nhất
Các mẫu RxJS nâng cao
Angular Universal và SSR
Micro-frontend Angular
Nắm vững Angular cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí