Giriş
Temel Bilgiler

Sinyaller

Dinamik veri oluşturun ve yönetin.

Angular'da durum oluşturmak ve yönetmek için sinyaller kullanırsınız. Sinyal, bir değerin etrafındaki hafif bir sarmalayıcıdır.

Yerel durumu tutmak üzere bir sinyal oluşturmak için signal fonksiyonunu kullanın:

import {signal} from '@angular/core';

// `signal` fonksiyonu ile bir sinyal oluşturun.
const firstName = signal('Morgan');

// Sinyal değerini çağırarak okuyun — sinyaller fonksiyondur.
console.log(firstName());

// Bu sinyalin değerini `set` metodunu yeni bir değerle çağırarak değiştirin.
firstName.set('Jaime');

// Değeri önceki değere göre değiştirmek için
// `update` metodunu da kullanabilirsiniz.
firstName.update((name) => name.toUpperCase());

Angular, sinyallerin nerede okunduğunu ve ne zaman güncellendiğini takip eder. Çerçeve, DOM'u yeni durumla güncellemek gibi ek işlemler yapmak için bu bilgiyi kullanır. Değişen sinyal değerlerine zaman içinde tepki verebilme yeteneği reaktivite olarak bilinir.

Hesaplanmış İfadeler

computed, değerini diğer sinyallere göre üreten bir sinyaldir.

import {signal, computed} from '@angular/core';

const firstName = signal('Morgan');
const firstNameCapitalized = computed(() => firstName().toUpperCase());

console.log(firstNameCapitalized()); // MORGAN

Bir computed sinyali salt okunurdur; set veya update metodu yoktur. Bunun yerine, computed sinyalinin değeri, okuduğu sinyallerden herhangi biri değiştiğinde otomatik olarak değişir:

import {signal, computed} from '@angular/core';

const firstName = signal('Morgan');
const firstNameCapitalized = computed(() => firstName().toUpperCase());
console.log(firstNameCapitalized()); // MORGAN

firstName.set('Jaime');
console.log(firstNameCapitalized()); // JAIME

Bileşenlerde Sinyal Kullanımı

Durum oluşturmak ve yönetmek için bileşenlerinizin içinde signal ve computed kullanın:

@Component({
  /* ... */
})
export class UserProfile {
  isTrial = signal(false);
  isTrialExpired = signal(false);
  showTrialDuration = computed(() => this.isTrial() && !this.isTrialExpired());

  activateTrial() {
    this.isTrial.set(true);
  }
}

TIP: Angular Sinyalleri hakkında daha fazla bilgi edinmek ister misiniz? Tüm ayrıntılar için Detaylı Sinyaller kılavuzuna bakın.

Sonraki Adım

Dinamik verileri nasıl tanımlayacağınızı ve yöneteceğinizi öğrendiğinize göre, bu verileri şablonlar içinde nasıl kullanacağınızı öğrenmenin zamanı geldi.