Archive / post

Blog

Next.js 16.4 منتشر شد؛ Cache Components حالا برای همه‌ی اپ‌ها توصیه می‌شود

Ramin Eslami2 min readUpdated 10/10/2026
Next.jsReactVercelTurbopackوبجاوااسکریپت
Next.js 16.4 منتشر شد؛ Cache Components حالا برای همه‌ی اپ‌ها توصیه می‌شود

تیم Next.js نسخه‌ی 16.4 را منتشر کرد و پیام اصلی‌اش روشن است: مدل برنامه‌نویسی جدید Cache Components از این نسخه برای «همه‌ی اپ‌ها» توصیه می‌شود و در Next.js 17 پیش‌فرض خواهد شد. از همین حالا هم هر پروژه‌ی جدیدی که با create-next-app ساخته شود، Cache Components را به‌صورت پیش‌فرض فعال دارد.

Next.js v16.4.0 release on GitHub
صفحه‌ی ریلیز v16.4.0 در مخزن vercel/next.js — منبع: GitHub

Cache Components چیست؟

به‌جای کش ضمنی و گیج‌کننده‌ی نسخه‌های قبلی App Router، حالا با دستور 'use cache' و cacheLife() مشخص می‌کنید کدام کامپوننت کش شود؛ تقریباً مثل هدر Cache-Control ولی در سطح کامپوننت. می‌شود در یک صفحه بخش استاتیک، بخش کش‌شده و بخش داینامیک (مثل آواتار کاربر) را کنار هم استریم کرد.

چه چیزهایی تازه است؟

  • ensureStatic: با export const ensureStatic = 'navigation' اگر کامپوننت داینامیکی وارد صفحه شود، build خطا می‌دهد. برای فروشگاه، صفحه‌ی مارکتینگ و بلاگ عالی است تا هزینه‌ی سرور یواشکی بالا نرود. حالت‌های prefetch و shell هم دارد.
  • APIهای navigation() و prefetch(): می‌توانید بخشی از محتوا را از prefetch بیرون بگذارید تا فقط هنگام ناوبری واقعی رندر شود؛ تعادل بین بارگذاری حریصانه و تنبل.
  • ابزار ایجنت‌ها: دستور next upgrade --agent نسخه را بررسی می‌کند، راهنمای مهاجرت و codemodها را برای ایجنت آماده می‌کند و ایجنت آپدیت را انجام و تست می‌کند. گزینه‌ی experimental.agentUpgrade هم موقع next dev/build درباره‌ی آپدیت‌های امنیتی یادآوری می‌کند.
  • بهبودهای Turbopack: کش دیسک ۲۰ تا ۲۵ درصد کوچک‌تر (فشرده‌سازی Zstandard)، HMR تنبل سمت سرور، runtime مشترک بین routeها، و باندل پروداکشن کوچک‌تر با نام‌های کوتاه‌تر CSS Module و export mangling.
  • React 19.3: با View Transitions و Fragment Refs پایدار.
  • آزمایشی: نسخه‌ی Rust کامپایلر React با ۳۰٪ مصرف حافظه‌ی کمتر و ۱۵٪ کامپایل سریع‌تر، و garbage collector برای پاک‌کردن کش بی‌استفاده.

نظر من

به نظرم این همان نسخه‌ای است که Next.js باید دو سال پیش می‌داد: کش «صریح و اختیاری» به‌جای جادوی پنهانی که همه را سر کار گذاشته بود. ensureStatic هم یک گارد ساده ولی خیلی کاربردی است؛ یک کامپوننت داینامیک اشتباهی می‌تواند کل صفحه را از CDN بیرون بکشد و قبض سرور را بالا ببرد. بخش ایجنت‌ها هم نشان می‌دهد Vercel صریحاً روی «ایجنت آپدیت را انجام بدهد» شرط بسته؛ ایده‌ی خوبی است، ولی من هنوز diff مهاجرت را خودم خط به خط می‌خوانم. اگر پروژه‌ی جدید شروع می‌کنید، مستقیم با Cache Components بروید؛ برای پروژه‌های قدیمی عجله نکنید و تا ۱۷ وقت دارید.

منبع: Next.js Blog — Next.js 16.4