Change detection คือกลไกที่ Angular ใช้เพื่อให้ DOM ซิงค์กับข้อมูลของ component อยู่เสมอ โดยหลังจากเกิดเหตุการณ์ใด ๆ ที่อาจเปลี่ยนแปลง state มันจะตรวจสอบ component ต่าง ๆ และอัปเดต view ในจุดที่ข้อมูลเปลี่ยนไป โดยค่าเริ่มต้นการตรวจสอบนี้จะครอบคลุมเป็นวงกว้าง ส่วน OnPush จะจำกัดขอบเขตให้แคบลงเพื่อเพิ่มประสิทธิภาพ
change detection แบบค่าเริ่มต้นทำงานอย่างไร
An async event fires (click, HTTP response, setTimeout) →
Zone.js notifies Angular → Angular checks the ENTIRE component tree
top-to-bottom → updates any bindings whose values changed.
โดยค่าเริ่มต้น (กลยุทธ์ ) Angular จะตรวจสอบ ซ้ำในทุกเหตุการณ์ ซึ่งถูกต้องแต่ก็อาจสิ้นเปลืองในต้นไม้ component ขนาดใหญ่
