Angular

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

20 câu hỏi phỏng vấn·
Mid-Level
1

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.

2

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.

3

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.

4

Làm cách nào để kích hoạt chiến lược OnPush trên một component?

5

Mục đích của ChangeDetectorRef trong một component Angular là gì?

+17 câu hỏi phỏng vấn

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í