← Zurück zu Ada
AgentAda
2. Bundle size, lazy loading and
3. SSR and hydration safety (when
Angular-Rendering und SSR-Leistung
Verbessert gemessene Darstellungs- und Ladekosten bei kompatiblem Server-Rendering und anschließender Hydrierung.
angular-performance-ssr
Entdecke, wie der Skill hilftWann ist der Skill hilfreich?
Nutze diesen Skill, wenn Listen, Diagramme oder erste Seitenaufrufe in Angular langsam wirken.
Wobei hilft er dir?
- Verringert wiederholte Template-Berechnungen und erhält stabile Elementidentitäten.
- Setzt unterstütztes verzögertes Laden, Rendering oder Seitennavigation ein.
- Schützt reine Browser-APIs und vermeidet störende DOM-Änderungen während der Hydrierung.
Das könntest du fragen
Miss unsere lange Bestellliste, reduziere unnötiges Rendering und prüfe direkt serverseitig geladene Seiten. Miss vor und nach der Änderung mit demselben großen Datensatz. Erfasse Renderzeiten und prüfe, ob Sortieren unnötig alle sichtbaren Zeilen neu erzeugt.
Ausführliche Dokumentation
Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.
Weniger anzeigen
Angular Performance & SSR
Measure before optimizing, eliminate unnecessary change-detection work and DOM thrashing, and keep code safe across browser and SSR/hydration environments when SSR is used.
1. Change detection and template rendering efficiency
- Use
ChangeDetectionStrategy.OnPushand reactive inputs (immutable object references, Signals, orasyncpipe) so Angular only re-checks subtrees whose inputs or local state actually changed. - Always provide a stable, unique identity in
@for (item of items; track item.id)(or*ngFor="...; trackBy: trackById"). Never track by$indexon lists that can be reordered, filtered, inserted into or deleted from. - Move formatting and derived calculations out of template method calls into
computed()signals or pure@Pipe({ pure: true })pipes.
2. Bundle size, lazy loading and @defer
- Keep initial bundles lean with route-level
loadComponent/loadChildrenand, in Angular 17+,@defer (on viewport)/@defer (on interaction)with@placeholder,@loadingand@errorblocks for heavy below-the-fold widgets or charts. - For large lists (hundreds or thousands of rows), use pagination or
@angular/cdk/scrolling(cdk-virtual-scroll-viewport) rather than rendering every DOM node at once. - Run tasks that fire at high frequency outside Angular's template needs (
requestAnimationFrame, scroll/mousemove listeners) viaNgZone.runOutsideAngularor passive listeners, re-entering only when UI state actually changes.
3. SSR and hydration safety (when @angular/ssr is present)
- Guard browser-only globals (
window,document,localStorage,ResizeObserver,IntersectionObserver) behindafterNextRender/afterRender(Angular 16+) orisPlatformBrowser( inject(PLATFORM_ID) ). - Avoid direct DOM manipulation that mutates server-rendered HTML structure before Angular hydration completes, and ensure
withEventReplay()/HttpClienttransfer cache is respected.
Before you finish
- Lists use stable
track item.id/trackBy, never$indexon mutable lists. -
OnPushandcomputed()/ pure pipes avoid redundant work on every change-detection cycle. - Browser-only APIs are guarded when SSR/hydration is active.
Enthaltene Dateien 2
LICENSE.txtSKILL.md
