Signals: Reaktivitas Modern Angular
Penjelasan
Signal adalah sistem reaktivitas modern Angular (diperkenalkan penuh di Angular 17+, mirip konsepnya ref() di Vue) — nilai dibungkus signal(nilaiAwal), dibaca dengan memanggilnya sebagai fungsi signalNya(), dan diubah lewat method .set() atau .update(). Signal membuat Angular tahu PERSIS bagian mana yang perlu diperbarui, tanpa bergantung pada Zone.js seperti pola lama.
Contoh Konsep
import { Component, signal } from '@angular/core';
@Component({
selector: 'app-counter',
standalone: true,
template: `
<p>Jumlah: {{ jumlah() }}</p>
<button (click)="tambah()">Tambah</button>
`,
})
export class CounterComponent {
jumlah = signal(0);
tambah() {
this.jumlah.update((nilai) => nilai + 1); // atau: this.jumlah.set(this.jumlah() + 1)
}
}
Praktikum
Buat component dengan signal nyala (boolean, awalnya false). Buat method toggle() yang membalik nilainya lewat .update(). Tampilkan teks "Lampu Nyala" atau "Lampu Mati" di template sesuai signal itu.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Signal HARUS DIPANGGIL sebagai fungsi untuk dibaca nilainya (jumlah(), dengan tanda kurung) — di template maupun di TypeScript, BEDA dengan ref() Vue yang di template otomatis "terbuka" tanpa perlu ekstra syntax. Lupa tanda kurung adalah kesalahan paling umum pemula Signals.