Change Detection
Zone.js, strategie di change detection, strategia OnPush, ChangeDetectorRef, markForCheck, detectChanges, ottimizzazione delle performance
1Cos'è il meccanismo di change detection in Angular?
Cos'è il meccanismo di change detection in Angular?
Risposta
La change detection è il processo con cui Angular rileva i cambiamenti nello stato dell'applicazione e aggiorna il DOM di conseguenza. Per impostazione predefinita, Angular usa Zone.js per rilevare automaticamente gli eventi asincroni (clicks, HTTP requests, timers) e attiva la verifica dei componenti dalla radice. Questa verifica attraversa l'albero dei componenti per identificare le modifiche da applicare al DOM.
2Qual è il ruolo di Zone.js nella change detection di Angular?
Qual è il ruolo di Zone.js nella change detection di Angular?
Risposta
Zone.js è una libreria che applica patch alle API asincrone native del browser (setTimeout, Promise, addEventListener, ecc.) per intercettare la loro esecuzione. Quando un'operazione asincrona si completa, Zone.js notifica Angular che attiva automaticamente la change detection dal componente radice. Questo permette ad Angular di rilevare i cambiamenti senza intervento manuale dello sviluppatore.
3Qual è la differenza tra le strategie Default e OnPush?
Qual è la differenza tra le strategie Default e OnPush?
Risposta
La strategia Default verifica tutti i componenti dell'albero ad ogni ciclo di change detection, il che può essere costoso. OnPush ottimizza verificando un componente solo se i suoi input cambiano (riferimenti immutabili), se un evento viene emesso dal suo template, se un async pipe riceve un nuovo valore, o se markForCheck() viene chiamato manualmente. OnPush riduce drasticamente le verifiche e migliora le performance.
Come abilitare la strategia OnPush su un componente?
Qual è lo scopo di ChangeDetectorRef in un componente Angular?
+17 domande da colloquio
Altri argomenti di colloquio Angular
Fondamenti di TypeScript
TypeScript Avanzato
Fondamenti di Angular
Componenti e ciclo di vita
Services & Dependency Injection
Organizzazione dei moduli Angular
Angular CLI
Direttive e Pipe
Routing e Navigazione
Form reattivi
Form template-driven
Fondamenti di RxJS
Operatori RxJS
HttpClient e chiamate API
Gestione dello stato di base
Angular Signals
Standalone Components
Test unitari in Angular
Testing End-to-End
Build e ottimizzazione
Fondamenti di NgRx
NgRx avanzato
Architettura Angular
Ottimizzazione delle performance
Sicurezza e best practice
Pattern RxJS avanzati
Angular Universal e SSR
Micro-frontend Angular
Padroneggia Angular per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis