← ClaudeAtlas

angular-signalslisted

Implement signal-based reactive state management in Angular v20+. Use for creating reactive state with signal(), derived state with computed(), dependent state with linkedSignal(), and side effects with effect(). Triggers on state management questions, converting from BehaviorSubject/Observable patterns to signals, or implementing reactive data flows.
plastikaweb/plastikspace · ★ 1 · Web & Frontend · score 67
Install: claude install-skill plastikaweb/plastikspace
# Angular Signals Signals are Angular's reactive primitive for state management. They provide synchronous, fine-grained reactivity. ## Core Signal APIs ### signal() - Writable State ```typescript import { signal } from '@angular/core'; // Create writable signal const count = signal(0); // Read value console.log(count()); // 0 // Set new value count.set(5); // Update based on current value count.update(c => c + 1); // With explicit type const user = signal<User | null>(null); user.set({ id: 1, name: 'Alice' }); ``` ### computed() - Derived State ```typescript import { signal, computed } from '@angular/core'; const firstName = signal('John'); const lastName = signal('Doe'); // Derived signal - automatically updates when dependencies change const fullName = computed(() => `${firstName()} ${lastName()}`); console.log(fullName()); // "John Doe" firstName.set('Jane'); console.log(fullName()); // "Jane Doe" // Computed with complex logic const items = signal<Item[]>([]); const filter = signal(''); const filteredItems = computed(() => { const query = filter().toLowerCase(); return items().filter(item => item.name.toLowerCase().includes(query)); }); const totalPrice = computed(() => filteredItems().reduce((sum, item) => sum + item.price, 0)); ``` ### linkedSignal() - Dependent State with Reset ```typescript import { signal, linkedSignal } from '@angular/core'; const options = signal(['A', 'B', 'C']); // Resets to first option when options change const selected