14.9.2022 |

Angular Change Detection - Cost Average Effect

Aus gegeben Anlass wollte ich das Thema noch mal kurz aufgreifen. @sophiabrandt war bereits so nett und hatte ihre Notizen zu diesem Thema zusammengeschrieben und veröffentlich Issue.

Dennoch wollte ich hier noch mal aufzeigen, wann man welche Strategy nehmen sollte bzw. wie man das meiste aus der CD rausholt.

Wenn Alle davon sprechen, dass die 'changeDetection: ChangeDetectionStrategy.OnPush' die Beste Wahl ist, warum wird die nicht als Default gesetzt?!

Gute Frage, letztlich wird es darauf zurückzuführen sein, dass sich nicht jede(r) Entwickler(in) von Haus aus mit der CD auskennt bzw. dem Mutaten von Werten/Referenzen.

Weil genau das ist für die OnPush Strategy unabdingbar. Wenn zuvor z.B. eine manuelle Subscribtion funktioniert hat, wird dieses mit dem Change auf OnPush nicht mehr so einfach umsetzbar sein. Dort muss dann mit der ChangeDetectionRef ein bisschen nachgeholen werden und der CD mitgeteilt werden, dass sich ein Wert geändert hat. Nutzen wir jedoch z.B. eine async pipe im Template, übernimmt diese die Metteilung an die CD für uns.

Der größte Benefit ist jedoch vor allem die Performance beim verwenden der OnPush Strategy, es müssen bzw. werden nicht mehr alle Componenten gerendert, sondern wirklich nur die, die der CD den Impuls dafür geben. Das wirkt sich vor allem bei großen Application positiv aus.

Sollte man also eher zur Verwendung der OnPush Strategy greifen, aus meiner Sicht ein klares JA. Auch in der heutigen Zeit, wo alle schnelle Device's haben, kommt es auf jede Sekunde an.

Ebenfalls ein guter Artikel zum Thema -> Read more...

Expensive Cheap Hybrid
Screenshot_2022-08-02_at_12.54.47 Screenshot_2022-08-02_at_12.54.30 Screenshot_2022-08-02_at_12.54.17
Dennis
Zur Übersicht

Mehr vom DevSquad...

Sven Röttering

Eigene eslint Regeln erstellen

Tim Tilch

Angular update mit NX