Angular 22 ile Gelen "Signal-First" Çağı: Bilmen Gereken 6 Değişiklik
Angular son birkaç sürümdür ciddi bir dönüşüm geçiriyor. Signals, Zoneless, standalone components... Her sürümde yeni bir kavram, her sürümde "artık böyle yazacağız" mesajı. Angular 22 ise bu dönüşümün bir nevi finali gibi. Deneysel etiketler kalktı, tartışmalar bitti — bundan sonra Angular bu şekilde yazılıyor. Bu yazıda Angular 22 ile stabil hale gelen ve günlük geliştirme pratiğini değiştirecek 6 önemli yeniliğe bakacağız.

1. Signal Forms artık production'a hazır
Angular'da form yönetimi her zaman biraz ağır hissettirmişti. FormGroup, FormControl, valueChanges zinciri... Ve en önemlisi: formun herhangi bir alanı değiştiğinde tüm form ağacının tetiklenmesi.
Angular 22 ile birlikte Signal Forms stabil olarak geliyor. Artık formlar, Angular Signals üzerine inşa edilmiş reaktif bir yapıyla yönetiliyor:
typescript
const name = signal('');
const email = signal('');
const form = signalForm({
name,
email
});Bu yaklaşımın en önemli farkı granüler reaktivite. 50 alanlı bir formda sadece değiştirdiğin alan güncelleniyor — tüm form ağacı yeniden hesaplanmıyor. Büyük, kompleks formlarda bu fark performansa doğrudan yansıyor.
2. Zone.js gitti — Zoneless artık varsayılan
Angular'ı ilk öğrenenler için Zone.js hep sihirli bir kara kutu gibiydi. "Nasıl oluyorda değişikliği anlıyor?" sorusunun cevabı hep Zone.js'ti. Ama bu sihrin bir maliyeti vardı: tüm async işlemlerin monkey-patch edilmesi, beklenmedik re-render'lar ve debug etmesi güç performans sorunları.
Angular 22 ile yeni projelerde Zone.js artık varsayılan olarak gelmiyor:
typescript
bootstrapApplication(AppComponent, {
providers: [
provideExperimentalZonelessChangeDetection()
]
});Mevcut projelerin Zone.js'i hemen kaldırması gerekmiyor — geriye dönük uyumluluk korunuyor. Ama yeni projeler artık daha hafif, daha öngörülebilir bir change detection mekanizmasıyla başlıyor.
3. Selectorless Components: selector'ları unutun
Şu ana kadar her component için bir string selector tanımlamak zorundaydık:
typescript
@Component({
selector: 'app-user-card',
// ...
})Sonra template'de <app-user-card /> yazmak. Büyük projelerde bu isimleri takip etmek, typo yapmamak, isim çakışmalarını önlemek... hepsi bir bilişsel yük oluşturuyordu.
Angular 22 ile component sınıfını doğrudan import edip kullanabiliyorsun:
typescript
import { UserCard } from './user-card.component';
@Component({
imports: [UserCard],
template: `<UserCard [user]="currentUser" />`
})Refactoring daha kolay, tip güvenliği daha güçlü, "o component'in selector'ı neydi?" sorusu artık yok.
4. debounced() signal — RxJS'e gerek kalmıyor
Arama kutusu yaptın, kullanıcı her tuşa basışta API'ye istek atmak istemiyorsun. Klasik çözüm: toObservable → debounceTime → switchMap → toSignal. Beş satır, iki import, bir zihinsel geçiş.
Angular 22 bunu native olarak çözüyor:
typescript
const searchQuery = signal('');
const debouncedQuery = debounced(searchQuery, 300);
effect(() => {
console.log(debouncedQuery()); // 300ms sonra tetiklenir
});RxJS hâlâ güçlü ve yerinde, ama artık her basit async senaryoda ona uzanmak zorunda değilsin.
5. httpResource ve rxResource stabil oldu
Angular 22 ile httpResource ve rxResource API'leri de stabil statüsüne kavuştu. Bu API'ler, HTTP isteklerini ve reaktif veri akışlarını Signal dünyasına entegre etmenin standart yolu haline geliyor:
typescript
const userId = signal(1);
const user = httpResource(() => `/api/users/${userId()}`);
// user.value() → veri
// user.isLoading() → yüklenme durumu
// user.error() → hatauserId değiştiğinde istek otomatik olarak yeniden yapılıyor. Loading/error state'leri ayrıca yönetmene gerek kalmıyor.
6. Angular Aria: erişilebilirlik artık temel bir parça
Angular 22 ile Angular Aria developer preview olarak geliyor. Headless, erişilebilirlik odaklı UI bileşenleri seti. Kendi stil sistemini tamamen özgürce uygulayabiliyorsun, ARIA mantığı ise framework tarafından yönetiliyor.
Bu, şu anlama geliyor: artık modal, dropdown, tooltip gibi bileşenler yazarken ARIA attribute'larını, focus trap'i, keyboard navigation'ı sıfırdan düşünmek zorunda kalmayacaksın.
Özet
Angular 22, "ne getirdi?" sorusundan çok "neyi bitirdi?" sorusunun cevabı olan bir sürüm. Signals stabil, Zoneless varsayılan, Signal Forms üretime hazır. Bu üç şey bir arada düşünüldüğünde, 2026'da Angular uygulaması geliştirmenin nasıl görüneceği artık netleşiyor.
Eğer hâlâ eski pattern'ları kullanıyorsan — ngOnChanges, async pipe zinciri, Zone.js bağımlı change detection — bunları birden atmak zorunda değilsin. Ama Angular'ın hangi yöne gittiğini artık çok net söylüyor.
Angular 21 yenilikleriyle ilgileniyorsan, önceki yazıma göz atabilirsin.