Next.js 16.4 منتشر شد: Cache Components حالا برای همه پیشنهاد میشه
خلاصهٔ کاملتر
تیم Next.js تو پست انتشار نسخهٔ 16.4 میگه حالا Cache Components رو برای هر اپ Next.js پیشنهاد میکنه. Cache Components مدل برنامهنویسی جدیدیه که تو نسخههای 16.x اومد: با دستور 'use cache' (یعنی یه جور Cache-Control ولی در سطح کامپوننت) مشخص میکنی کدوم بخش از درخت کامپوننتها کش بشه. این مدل جای کش ضمنی و پیشفرض نسخههای قبلی App Router رو میگیره و تو Next.js 17 پیشفرض میشه.
به گفتهٔ تیم، قبلاً این مدل رو برای همه توصیه نمیکردن چون بعضی جاها نمیتونست همون هزینه و پرفورمنس مدل قبلی رو تضمین کنه؛ این نسخه همون شکافها رو پر کرده. از امروز هر اپی که با create-next-app ساخته بشه Cache Components روشن داره. برای پروژههای قدیمی هم دستور next upgrade --agent اومده که به ایجنتهای هوش مصنوعی راهنمای مخصوص همون نسخه رو برای ارتقا میده، و Skillهای اختصاصی کمکشون میکنن ریفکتورهای لازم رو انجام بدن. برای فعال کردن دستی هم باید دو فلگ cacheComponents و partialPrefetching رو تو next.config.ts روشن کنی؛ Partial Prefetching حالا رسماً بخشی از این مدله.
مهمترین قابلیت جدید ensureStatic هست. Cache Components اجازه میده تو یه صفحه هم محتوای استاتیک (از قبل رندرشده) داشته باشی هم داینامیک (رندر لحظهٔ درخواست). ولی بعضی سایتها مثل فروشگاه، صفحهٔ مارکتینگ یا بلاگ میخوان کاملاً استاتیک بمونن، چون یه کامپوننت داینامیک میتونه هزینهٔ سرور و سرعت رو خراب کنه. با ensureStatic اگه محتوای داینامیک وارد route بشه، build شکست میخوره:
export const ensureStatic = 'navigation';
export default function Page() {
return (
<>
<UserAvatar /> {/* 🔴 This component fails the build */}
<Content />
</>
);
}مقدار 'navigation' سختگیرانهترین حالته و تضمین میکنه کل ناوبری به این صفحه استاتیک باشه. دو حالت ملایمتر هم هست: 'prefetch' که فقط prefetchهای صریح رو استاتیک نگه میداره، و 'shell' که فقط پوستهٔ اولیهٔ صفحه رو. میشه ensureStatic رو روی layout هم گذاشت تا روی همهٔ صفحههای زیرش اعمال بشه؛ مثلاً روی root layout برای کل سایت، و بعد اگه یه بخش داینامیک لازم شد، اونو به layoutهای پایینتر منتقل کرد.
پست یه بخش هم دربارهٔ بیرون گذاشتن بعضی محتواها از prefetch داره. prefetch با یا useRouter().prefetch() UI کششدهٔ صفحه رو قبل از کلیک آماده میکنه تا حالت loading حذف بشه. جدا از اینها، 16.4 برای همهٔ اپها مصرف حافظه و حجم دیسک کمتر تو dev، کامپایل سریعتر، باندل production کوچیکتر و React 19.3 رو هم آورده.
نکات کلیدی:
- Cache Components از 16.4 برای همهٔ اپها پیشنهاد میشه و تو Next.js 17 پیشفرض میشه
- پروژههای جدید create-next-app از همین الان Cache Components فعال دارن
- دستور next upgrade --agent به ایجنتهای AI راهنمای ارتقا میده
- ensureStatic سه حالت داره: navigation، prefetch و shell، و روی layout هم کار میکنه
- فعالسازی دستی با دو فلگ cacheComponents و partialPrefetching تو next.config.ts
- React 19.3، کامپایل سریعتر و مصرف حافظهٔ کمتر تو حالت dev




