Ulaşım
- Adres: 2342 Sk, İpekyol, İpek Ap 49A, 63250 Haliliye/Şanlıurfa
- Telefon:
0505 532 36 38 - eMail: admin@alestaweb.com
React projenizde her yere useMemo ve useCallback serpiştirmekten yoruldunuz mu (tired of manual memoization)? Alesta Web olarak iyi haberi verelim: React 19 ile gelen React Compiler bu işi sizin yerinize yapıyor. Bu rehberde React 19'un en önemli yeniliklerini (React 19 new features) sade bir dille, adım adım anlatıyoruz. Hem yeni başlayanlar hem de mevcut projesini taşımak isteyen geliştiriciler için yazıldı.
React 19, Facebook (Meta) ekibinin geliştirdiği popüler arayüz kütüphanesinin (popular UI library) büyük bir dönüm noktası. Aralık 2024'te yayınlanan ilk kararlı sürümün ardından 2026 itibarıyla React 19.2 hattı tam olarak olgunlaştı ve kurumsal üretim ortamları için güvenle önerilir hale geldi. Peki bu sürümü bu kadar konuşulur yapan ne?
Kısaca: React 19, yıllardır deneysel olan birçok özelliği stabilize etti. İşte öne çıkanlar (key highlights):
Alesta Web ekibi olarak onlarca React projesi geliştirdik ve en çok zaman kaybedilen konunun gereksiz yeniden render'lar (unnecessary re-renders) olduğunu gördük. React 19 tam da bu noktaya çözüm getiriyor.
React 19, JS paket boyutunu (JavaScript payload) bazı senaryolarda %30-50 oranında düşürebiliyor. Bu da daha hızlı açılan sayfalar (faster page load) ve daha iyi Core Web Vitals demek.
Şimdi gelelim asıl yıldıza. React Compiler, kodunuzu derlerken (at build time) hangi değerlerin yeniden hesaplanması gerektiğini kendisi anlar ve gerekli memoization'ı otomatik ekler. Yani useMemo, useCallback ve React.memo ile uğraşmanıza çoğu zaman gerek kalmaz.
Bunu şöyle düşünün: Eskiden her pahalı hesaplamayı elle sarmalamanız (manual wrapping) gerekiyordu. Şimdi derleyici (the compiler) kodu analiz ediyor ve bu işi sizin için hatasız yapıyor.
function UrunListesi({ urunler, filtre }) {
// Elle optimize etmek zorundaydık
const filtrelenmis = useMemo(
() => urunler.filter(u => u.ad.includes(filtre)),
[urunler, filtre]
);
const tikla = useCallback((id) => secProduct(id), []);
return <Liste veri={filtrelenmis} onTikla={tikla} />;
}
function UrunListesi({ urunler, filtre }) {
// Derleyici optimizasyonu otomatik yapar (auto-optimized)
const filtrelenmis = urunler.filter(u => u.ad.includes(filtre));
const tikla = (id) => secProduct(id);
return <Liste veri={filtrelenmis} onTikla={tikla} />;
}
Gördünüz mü? Kod hem daha okunabilir (more readable) hem de daha hızlı. Derleyici arka planda gerekli memoization'ı ekliyor. Alesta Web testlerinde, büyük listelerde render süresinin gözle görülür biçimde kısaldığını ölçtük.
React Compiler, kodunuzun React kurallarına (Rules of React) uygun olmasını bekler. Yan etkileri (side effects) render içinde çalıştırmak gibi alışkanlıklar derleyiciyi yanıltabilir. Önce ESLint kuralını çalıştırın.
React 19'un ikinci büyük adımı Server Components (sunucu bileşenleri). Bu bileşenler sunucuda render edilir, tarayıcıya yalnızca sonuç HTML'i gönderilir. Sonuç: daha az JavaScript indirilir, sayfa daha hızlı etkileşime hazır olur (faster time to interactive).
Actions ise form gönderimi ve async işlemleri (async operations) basitleştirir. Eskiden bir formu göndermek için onSubmit, loading state, hata yönetimi gibi onlarca satır yazardınız. Şimdi tek bir action fonksiyonu yetiyor.
function IletisimFormu() {
async function gonder(formData) {
'use server';
const ad = formData.get('ad');
await kaydet(ad); // sunucuda çalışır (runs on server)
}
return (
<form action={gonder}>
<input name="ad" />
<button type="submit">Gönder</button>
</form>
);
}
Buradaki 'use server' direktifi, fonksiyonun sunucuda çalıştığını belirtir. Böylece veritabanı işlemlerinizi (database operations) güvenle yapabilirsiniz; bu kod tarayıcıya hiç gitmez.
React 19 ile gelen use hook'u, bir promise'i veya context'i doğrudan okumanızı sağlar. Üstelik diğer hook'ların aksine koşullu (conditional) olarak da çağrılabilir. Bu küçük ama güçlü bir esneklik.
function Yorumlar({ yorumlar }) {
const [iyimser, ekleIyimser] = useOptimistic(yorumlar);
async function ekle(formData) {
ekleIyimser([...iyimser, { metin: formData.get('metin') }]);
await sunucuyaGonder(formData);
}
// Kullanıcı beklemeden sonucu görür (instant feedback)
}
Bu yaklaşım, kullanıcıya işlemin sonucunu sunucu cevabını beklemeden gösterir (optimistic update). Bir yorum eklediğinizde anında ekranda belirir; arka planda sunucu işlemi tamamlanır. Alesta Web projelerinde bu özellik, kullanıcı deneyimini (user experience) ciddi şekilde iyileştirdi.
Mevcut bir React projesini React 19'a taşımak (migrate) çoğu durumda sorunsuz. İşte adım adım yol haritası (step by step):
npm install react@19 react-dom@19
npm install -D babel-plugin-react-compiler # veya Vite / Next.js eklentisi ile yapılandırın
npm install -D eslint-plugin-react-compiler # Kural ihlallerini (rule violations) düzeltin, sonra derleyiciyi açın
Alesta Web tavsiyesi: Derleyiciyi önce küçük bir bileşen grubunda (incremental adoption) deneyin. Her şey yolundaysa kademeli olarak tüm projeye yayın. Acele etmeyin; React Compiler'ın asıl gücü, kurallara uygun temiz kod üzerinde ortaya çıkar.
Migration sonrası React DevTools'ta "Memo ✨" rozetlerini görmeye başlarsınız. Bu, derleyicinin o bileşeni otomatik optimize ettiğini gösterir.
Render sırasında state değiştirmek ya da yan etki çalıştırmak derleyiciyi devre dışı bırakır. Çözüm: bu işlemleri useEffect veya event handler içine taşıyın.
Sunucu ve istemci çıktısı farklıysa hata alırsınız. React 19 bu hataları daha okunabilir mesajlarla raporluyor; mesajdaki bileşen yolunu takip edin.
Bu hataların çoğu, kodu React kurallarına uygun hale getirince kendiliğinden kayboluyor (usually resolved automatically). Takıldığınız noktada Alesta Web ekibiyle iletişime geçebilirsiniz.
Bu makaledeki bilgiler aşağıdaki güvenilir kaynaklardan derlenmiştir (compiled from reliable sources):
Alesta Web olarak tüm örnekleri test ettik (we verified all examples).
React 19 ve React Compiler, modern web geliştirmede (modern web development) önemli bir kolaylık sağlıyor. Manuel optimizasyon yükü azalıyor, Server Components ile paket boyutu küçülüyor, Actions ile form yönetimi sadeleşiyor.
Faydalı Linkler / Useful Links:
Sorularınız için Alesta Web ekibi her zaman yardıma hazır. Yeni rehberler için alestaweb.com adresini takipte kalın.
© 2026 Alesta Web - Tüm hakları saklıdır.