Signals adalah sistem reaktivitas baru di Angular — lebih sederhana dari RxJS untuk state management.
Membuat Signal
import { signal, computed, effect } from "@angular/core"
export class CounterComponent {
count = signal(0)
doubled = computed(() => this.count() * 2)
constructor() {
effect(() => {
console.log("Count:", this.count())
})
}
increment() {
this.count.update(c => c + 1)
}
}
Di Template
<p>Count: {{ count() }}</p>
<p>Doubled: {{ doubled() }}</p>
<button (click)="increment()">+1</button>
Methods
signal(value)— buat signalcomputed(() => ...)— derived value (read-only)effect(() => ...)— side effect.set(value),.update(fn)— ubah nilai