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

تیم Next.js نسخهی 16.4 را منتشر کرد و پیام اصلیاش روشن است: مدل برنامهنویسی جدید Cache Components از این نسخه برای «همهی اپها» توصیه میشود و در Next.js 17 پیشفرض خواهد شد. از همین حالا هم هر پروژهی جدیدی که با create-next-app ساخته شود، Cache Components را بهصورت پیشفرض فعال دارد.
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 بروید؛ برای پروژههای قدیمی عجله نکنید و تا ۱۷ وقت دارید.