Angular sinyalleri öğreticisine hoş geldiniz! Sinyaller, Angular'ın reaktif temel yapı taşıdır ve durumu yönetmenin ve bu durum değiştiğinde kullanıcı arayüzünüzü otomatik olarak güncellemenin bir yolunu sağlar.
Bu aktivitede şunları öğreneceksiniz:
signal()fonksiyonunu kullanarak ilk sinyalinizi oluşturma- Değerini bir şablonda görüntüleme
set()veupdate()metotlarını kullanarak sinyal değerini güncelleme
Sinyallerle etkileşimli bir kullanıcı durum sistemi oluşturalım!
-
Signal fonksiyonunu içe aktarın
Bileşen dosyanızın en üstüne
@angular/corepaketindensignalfonksiyonunu içe aktarın.import {Component, signal, ChangeDetectionStrategy} from '@angular/core'; -
Bileşeninizde bir sinyal oluşturun
Bileşen sınıfınıza
'offline'değeriyle başlatılan biruserStatussinyali ekleyin. -
Sinyal değerini şablonda görüntüleyin
Durum göstergesini, mevcut kullanıcı durumunu görüntüleyecek şekilde güncelleyin:
- Sinyali class niteliğine
[class]="userStatus()"ile bağlama ???yerine{{ userStatus() }}koyarak durum metnini görüntüleme
<!-- Update from: --> <div class="status-indicator offline"> <span class="status-dot"></span> Status: ??? </div> <!-- To: --> <div class="status-indicator" [class]="userStatus()"> <span class="status-dot"></span> Status: {{ userStatus() }} </div>Sinyalin değerini okumak için
userStatus()şeklinde parantezlerle çağırdığımıza dikkat edin. - Sinyali class niteliğine
-
Sinyali güncellemek için metotlar ekleyin
set()metodunu kullanarak kullanıcı durumunu değiştiren metotları bileşeninize ekleyin.goOnline() { this.userStatus.set('online'); } goOffline() { this.userStatus.set('offline'); }set()metodu, sinyalin değerini tamamen yeni bir değerle değiştirir. -
Kontrol düğmelerini bağlayın
Düğmeler zaten şablonda mevcut. Şimdi aşağıdakileri ekleyerek onları metotlarınıza bağlayın:
(click)ile tıklama işleyicileri- Zaten o durumda olunduğunda
[disabled]ile devre dışı durumlar
<!-- Add bindings to the existing buttons: --> <button (click)="goOnline()" [disabled]="userStatus() === 'online'">Go Online</button> <button (click)="goOffline()" [disabled]="userStatus() === 'offline'">Go Offline</button> -
update() kullanarak bir geçiş metodu ekleyin
update()metodunu kullanarak çevrimiçi ve çevrimdışı arasında geçiş yapan birtoggleStatus()metodu ekleyin.toggleStatus() { this.userStatus.update(current => current === 'online' ? 'offline' : 'online'); }update()metodu, mevcut değeri alan ve yeni değeri döndüren bir fonksiyon alır. Bu, mevcut değeri geçerli durumuna göre değiştirmeniz gerektiğinde kullanışlıdır. -
Geçiş düğmesi işleyicisini ekleyin
Geçiş düğmesi zaten şablonda mevcut. Onu
toggleStatus()metodunuza bağlayın:<button (click)="toggleStatus()" class="toggle-btn">Toggle Status</button>
Tebrikler! İlk sinyalinizi oluşturdunuz ve hem set() hem de update() metotlarını kullanarak nasıl güncelleneceğini öğrendiniz. signal() fonksiyonu, Angular'ın izlediği reaktif bir değer oluşturur ve siz onu güncellediğinizde, kullanıcı arayüzünüz değişiklikleri otomatik olarak yansıtır.
Ardından, computed kullanarak sinyallerden durum türetmeyi öğreneceksiniz!