9 Ekim 2026 · Web geliştirme
Next.js 16.4: Cache Components artık herkese öneriliyor, peki projenizde ne değişmeli?
6 Ekim'de çıkan Next.js 16.4, Cache Components modelini tüm uygulamalar için önerilen yol ilan etti ve yeni projelerde varsayılan yaptı. Aynı hafta duyurulan 14 Ekim güvenlik güncellemesi ve 21 Ekim'de sona erecek Next.js 15 desteğiyle birlikte, yükseltme planı yapmanın tam zamanı.
Next.js ekibi 6 Ekim 2026'da 16.4 sürümünü yayımladı. Sürüm notlarında Turbopack iyileştirmeleri, React 19.3 ve yeni ajan araçları gibi pek çok başlık var. Ama asıl önemli olan tek bir cümle: Next.js ekibi artık Cache Components modelini her Next.js uygulaması için en iyi seçenek olarak öneriyor. create-next-app ile açılan yeni projelerde bu model artık varsayılan olarak açık geliyor ve Next.js 17'de genel varsayılan olacak.
Buna aynı haftanın iki tarihini de eklemek gerekiyor: 14 Ekim'de iki kritik ve bir yüksek önem dereceli açığı kapatacak bir güvenlik güncellemesi geliyor, Next.js 15'in güvenlik desteği de 21 Ekim'de bitiyor. Yani App Router kullanan ekipler için bu ay bir yol ayrımı.
Cache Components nedir, neden önemli?
App Router'ın ilk günlerinden beri en çok şikâyet edilen konu önbellekleme oldu. Hangi fetch çağrısının önbelleğe alındığı, hangi sayfanın statik hangisinin dinamik render edildiği çoğu zaman tahmin edilmesi zor, örtük kurallara bağlıydı.
Cache Components bu yaklaşımı tersine çeviriyor: önbellekleme açıkça istenen bir şey oluyor. Bir bileşenin veya fonksiyonun başına 'use cache' yazdığınızda, o parçayı önbelleğe alınabilir olarak işaretliyorsunuz. Next.js ekibi bunu bileşen seviyesinde bir Cache-Control başlığına benzetiyor; bence de iyi bir zihinsel model.
async function Projects({ userId }) {
'use cache';
cacheLife('hours');
const projects = await getProjects(userId);
return <ProjectList items={projects} />;
}Bu sayede aynı sayfada kullanıcıya özel, istek anında render edilen kısımlarla (örneğin oturum açan kullanıcının avatarı) önceden render edilmiş statik içerik tek bir yanıt içinde akabiliyor.
Modeli bugün kullanmak için next.config.ts içinde iki bayrağı açmak yeterli:
const nextConfig = {
cacheComponents: true,
partialPrefetching: true,
};Ekip daha önce bu modeli herkese önermiyordu, çünkü bazı senaryolarda eski modelin maliyet ve performans garantilerini sağlayamıyordu. 16.4 tam olarak bu boşlukları kapatmaya odaklanıyor.
16.4'te boşlukları kapatan yenilikler
ensureStatic: Statik sayfaya kazara dinamik içerik sızmasın
Cache Components'ın esnekliği bir risk de getiriyor: tamamen statik olması gereken bir blog ya da e-ticaret sayfasına tek bir dinamik bileşen eklendiğinde, sayfa sessizce istek anında render edilmeye başlayabilir. Bu da sunucu maliyeti demek.
Yeni ensureStatic ayarı bu durumu derleme zamanında yakalıyor. Bir sayfaya veya layout'a şunu eklediğinizde, içine dinamik içerik girerse build başarısız oluyor:
export const ensureStatic = 'navigation';Üç seviye var:
navigation: En katı seçenek; o rotaya yapılan gezinmeler hiçbir zaman istek anında render edilmez.prefetch: Açık prefetch yapan bağlantıların yalnızca statik içerik çekmesini garanti eder.shell: Rota ilk keşfedildiğinde yalnızca statik kabuğun çekilmesini garanti eder.
Kök layout'a koyup gerektiğinde alt layout'lara indirmek de mümkün. Pratikte bu, “bu sayfa statik kalmalı” kuralını kod incelemesine değil, CI'a emanet etmek anlamına geliyor.
navigation() ve prefetch(): Neyin ne zaman yükleneceğini seçmek
<Link prefetch> kullanıcının tıklamadan önce sayfayı hazırlamasını sağlıyor, ama ekrandaki her bağlantı için tüm veriyi önceden çekmek pahalı olabilir. Next.js'in kendi örneğindeki e-posta uygulamasını düşünün: gelen kutusundaki her mesaj için tüm yazışma geçmişini önceden yüklemek sunucuyu boşuna yorar.
16.4 ile gelen navigation() fonksiyonunu bir bileşenin içinde await ettiğinizde, o kısım prefetch'ten çıkarılıyor ve yalnızca gerçek gezinmede yükleniyor. prefetch() ise benzer şekilde içeriği sayfa kabuğundan çıkarıp sadece açık bir prefetch istendiğinde yüklüyor. Böylece “anında açılan sayfa” ile “makul sunucu yükü” arasındaki dengeyi bileşen bazında ayarlayabiliyorsunuz.
Herkesin bedavaya aldığı iyileştirmeler
Cache Components'a geçmeseniz bile 16.4'e yükseltmenin somut faydaları var:
- Turbopack disk önbelleği, ayar değiştirmeden %20–25 daha az yer kaplıyor (veri için Zstandard, metadata için LZ4 sıkıştırma).
- Sunucu tarafı HMR artık tembel çalışıyor: paylaşılan bir sunucu modülünü değiştirdiğinizde yalnızca o an istek alan sayfa yeniden derleniyor.
- Production'da CSS Module sınıf adları kısalıyor ve export isimleri küçültülüyor; bu da daha küçük paketler demek.
- React 19.3 geliyor: View Transitions ve Fragment Refs artık kararlı. Yeni
browser()API'si ise bir bileşeni sunucu render'ından çıkarmanın temiz bir yolunu sunuyor;typeof windowkontrollerine veyauseEffectile kurulan geçici state çözümlerine gerek kalmıyor.
Deneysel tarafta Rust ile yazılmış React Compiler'ın bellek kullanımı %30, derleme süresi %15 azalmış; ayrıca Turbopack için çöp toplayıcı ve tembel dinamik import seçenekleri eklenmiş.
Ajanlarla yükseltme
Sürümün dikkat çeken bir diğer yönü, kodlama ajanlarına yönelik araçlar. next upgrade --agent komutu mevcut sürümünüzü tespit edip hedef sürümü seçiyor, ilgili geçiş rehberlerini, codemod'ları ve doğrulama adımlarını ajanınıza hazırlıyor:
npx next@canary upgrade --agent=latestYeni experimental.agentUpgrade ayarı ise next dev ve next build sırasında uygun bir yükseltme olduğunda sizi uyarıyor. Varsayılan politika security; yani yalnızca kurulu sürümünüzü etkileyen bilinen açıklar için hatırlatma yapıyor. Bunu bir yapay zekâ özelliğinden çok, bağımlılık güncelliğini geliştirme döngüsüne gömen bir mekanizma olarak görmek daha doğru.
Takvime bakın: 14 ve 21 Ekim
Next.js ekibi 8 Ekim'de, 14 Ekim 2026 Çarşamba günü olağan takvim dışında bir güvenlik güncellemesi yayımlayacağını duyurdu. Güncelleme, üst akıştaki (upstream) bağımlılıklardan kaynaklanan iki kritik ve bir yüksek önem dereceli açığı kapatacak. Bunlardan ikisi, upstream koordinasyonu nedeniyle Eylül güvenlik sürümünden ertelenmişti. Etkilenen sürümler ve detaylar güncellemeyle birlikte açıklanacak.
Buna ek olarak endoflife.date verilerine göre Next.js 15'in güvenlik desteği 21 Ekim 2026'da sona eriyor. Yani hâlâ 15.x kullanıyorsanız, 14 Ekim'deki yamayı alabilirsiniz ama sonraki açıklar için büyük olasılıkla 16'ya geçmeniz gerekecek.
Pratikte ne yapmalı?
- Yeni proje başlatıyorsanız: Varsayılanları kabul edin; Cache Components ile başlamak, ileride Next.js 17 geçişini de kolaylaştırır.
- Next.js 16 kullanıyorsanız: 16.4'e geçin, 14 Ekim'de yayımlanacak yamayı hemen uygulamaya hazır olun. Cache Components'ı önce tek bir rotada deneyin; statik kalması gereken sayfalara
ensureStaticekleyin. - Next.js 15'teyseniz: Bu ay bir 16 geçiş planı çıkarın. 21 Ekim'den sonra güvenlik yamaları gelmeyecek.
Benim yorumum şu: Next.js uzun süredir “sihirli” önbellekleme davranışlarıyla eleştiriliyordu. 16.4 ile ekip, açık ve bileşen bazlı önbelleklemeyi resmi yol ilan ediyor ve bunu ensureStatic gibi derleme zamanı garantileriyle destekliyor. Geçiş zahmetsiz olmayacak, ama sonunda “bu sayfa neden dinamik oldu?” sorusuna kodun kendisinden cevap verebilmek, ekipler için ciddi bir kazanç.