javascript / expert
Snippet
Signal-basierte Memoization für abgeleitete Objekt-Maps
Die Ableitung einer Map aus einem Array mittels computed() Signals erstellt einen hocheffizienten Lookup-Cache. Da computed Signals memoisiert werden, wird die Map nur neu erstellt, wenn das zugrunde liegende rawUsers-Signal einen neuen Wert emittiert, was O(1)-Zugriffsmuster in Templates optimiert.
snippet.js
1
2
3
4
5
6
const rawUsers = signal([{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]);const userMap = computed(() => {return new Map(rawUsers().map(u => [u.id, u]));});const getUser = (id: number) => userMap().get(id);
angular
Erklärung
1
const userMap = computed(() => {
Erstellt ein abgeleitetes Read-only-Signal, das das Ergebnis memoisiert.
2
return new Map(rawUsers().map(u => [u.id, u]));
Transformiert das Array in eine Map für Lookups in konstanter Zeit.