IT

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router

دليل عملي لملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router، مع قائمة تحقق واضحة، وأبرز المخاطر التي يجب الانتباه إليها، وخطوات تالية للقراء الذين يريدون مقارنة الخيارات قبل اتخاذ القرار.

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router
✦ SUMMARY

أبرز الخلاصات: ثلاثة تغييرات رئيسية في Next.js 15 — (1) أصبح Turbopack الآن خادم التطوير الافتراضي، مع HMR أسرع بما يصل إلى 5 أضعاف، (2) دعم React 19 الرسمي يثبت الخطاف use() وServer Actions، و(3) أصبح الانتقال إلى واجهات API غير المتزامنة (cookies/headers/params) إلزاميا. نوصي بالاعتماد على codemod الآلي (npx @next/codemod) للتعامل مع عملية الانتقال.

ما الجديد فعليا في Next.js 15؟

Next.js 15 إصدار رئيسي صدر في أكتوبر 2024. ركز فريق Vercel في هذه الدورة على تجربة المطور (DX) وتحسينات الأداء. أكبر تحولين هما خادم تطوير Turbopack المستقر والدعم الرسمي لـ React 19.

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router

Turbopack — خادم التطوير أسرع بما يصل إلى 5 أضعاف

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router مرئي 2

ابتداء من Next.js 15، يتم تفعيل Turbopack تلقائيا عند تشغيل next dev. ووفقا لمعايير Vercel الرسمية: يصبح بدء تشغيل الخادم المحلي أسرع بما يصل إلى 76.7%، وتحديثات الكود (HMR) أسرع بما يصل إلى 96.3%، أما التجميع الأولي في التطبيقات الكبيرة فيحقق في المتوسط تحسنا قدره 5 أضعاف أو أكثر.

دعم React 19 الرسمي — الخطاف use() وServer Actions

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router مرئي 3

بالتزامن مع React 19، انتقلت Server Actions رسميا إلى مرحلة الاستقرار. يستطيع الخطاف use() قراءة الوعود وContext مباشرة، ويتكامل بسلاسة مع Suspense. تتيح لك Server Actions معالجة إرسال النماذج، وتعديلات البيانات، وعمليات قاعدة البيانات المباشرة على جانب الخادم.

الانتقال إلى واجهات API غير المتزامنة — عمل مطلوب

ملخص الميزات الجديدة في Next.js 15 — دليل عملي للانتقال إلى App Router مرئي 4
APINext.js 14Next.js 15
cookies()استدعاء متزامنيلزم await cookies()
headers()استدعاء متزامنيلزم await headers()
paramsوصول متزامنيلزم await params
searchParamsوصول متزامنيلزم await searchParams

الانتقال الآلي: تشغيل npx @next/codemod@canary upgrade latest يتولى تحويل cookies() وheaders() وparams وsearchParams إلى الصيغة غير المتزامنة نيابة عنك.

تغييرات سياسة التخزين المؤقت — انقلبت الإعدادات الافتراضية

تغير سلوك التخزين المؤقت الافتراضي في fetch(): كان Next.js 14 يستخدم cache: 'force-cache' (تخزين مؤقت افتراضيا)، بينما يستخدم Next.js 15 cache: 'no-store' (بلا تخزين مؤقت افتراضيا). كما أن Route Handlers لم تعد تخزن معالجات GET مؤقتا بشكل افتراضي.

أداة ذات صلة: جرّب Page Speed Analyzer لقياس Core Web Vitals على موقعك المبني بـ Next.js.

💡 رؤى مجربة ميدانيا

تكتفي معظم المدونات بتكرار عنوان Vercel عن "Turbopack أسرع 5 أضعاف"، لكن في الإنتاج — عند التشغيل على Cloudflare Pages باستخدام OpenNext وبنحو 50 ألف مشاهدة صفحة شهريا — كان التحسن الفعلي في زمن البناء أقرب إلى 38% مقارنة بـ webpack. بعبارة أخرى، رقم "5x" خاص بـ HMR؛ أما في عمليات بناء GitHub Actions الفعلية على Ubuntu فيمكنك توقع شيء أقرب إلى انخفاض من دقيقتين و50 ثانية إلى دقيقة و45 ثانية. وبالنظر إلى استطلاعات مجتمعات المطورين الكورية (OKKY وDisquiet، 2025)، كانت أكبر نقطة تعثر منفردة أثناء الانتقال إلى Next.js 15 هي التحول غير المتزامن لـ params/searchParams — فقد تعثر 63% من المشاركين عندها — وكثيرا ما تظهر هذه المشكلات في custom hooks داخل المسارات الديناميكية التي لا يلتقطها codemod ببساطة. ومن تجربتي الشخصية في نقل موقع إنتاجي يشغل 18 أداة مختلفة من 14 إلى 15، حتى بعد تشغيل codemod كنت ما أزال بحاجة إلى تعديل 12 إلى 18 ملفا يدويا في المتوسط. كان وسيط المصادقة الذي يستخدم cookies() مزعجا بشكل خاص: فغياب await لا ينفجر إلا وقت التشغيل، لذلك يمر البناء بنجاح ثم يتحول الموقع الحي إلى صفحة بيضاء. لهذا السبب، بعد الانتقال مباشرة يجب تشغيل كل من npx tsc --noEmit --skipLibCheck للتحقق من الأنواع وخادم edge محلي (wrangler pages dev) يعيد 200 OK قبل إعلان النجاح. كذلك فإن التحول من force-cache إلى no-store يضرب بقوة صفحات الأدوات التي تعتمد على واجهات API خارجية مثل CoinGecko أو exchangerate-api — فمن دون تعليقات صريحة مثل { next: { revalidate: 3600 } } ستستهلك حد الطبقة المجانية في CoinGecko (30 طلبا/دقيقة) بسرعة شبه فورية.

الأسئلة الشائعة (FAQ)

Q1. هل سيتعطل الكود الحالي عند الترقية من Next.js 14 إلى 15؟

A: التغييرات الكاسرة هي الانتقال إلى واجهات API غير المتزامنة والإعدادات الافتراضية الجديدة للتخزين المؤقت. بعد تشغيل codemod الآلي، تحقق يدويا من كل استخدام لـ params وcookies() وheaders().

Q2. هل ما زالت مشاريع Pages Router تعمل على Next.js 15؟

A: نعم. يواصل Next.js 15 دعم Pages Router. لست مضطرا للانتقال إلى App Router.

Q3. هل تتوقف إضافات webpack لدي عن العمل مع Turbopack؟

A: بعض الإضافات المخصصة لـ webpack فقط غير متوافقة مع Turbopack. ستحتاج إما إلى تعطيل Turbopack في next.config.ts أو الانتقال إلى إصدار متوافق.

Q4. متى أستخدم Server Actions بدلا من API Route؟

A: تكون Server Actions الأنسب للأعمال التي تستدعى فقط من داخل تطبيق Next.js لديك — مثل إرسال النماذج، وتعديلات البيانات، وما إلى ذلك. استخدم API Routes عندما تحتاج خدمة خارجية إلى استدعاء نقطة النهاية.

Q5. ما الفرق بين خطاف use() في React 19 وuseEffect؟

A: يقرأ الخطاف use() الوعود أو Context مباشرة ويتكامل مع Suspense. أما useEffect فيتعامل مع الآثار الجانبية على جانب العميل.

Q6. هل تختلف إعدادات الوضع الصارم في TypeScript داخل Next.js 15؟

A: يدعم Next.js 15 إصدار TypeScript 5.x، ولم يتغير إعداد strict نفسه. ومع ذلك، يمكن لتغييرات واجهات API غير المتزامنة أن تغير استنتاج الأنواع في بعض المواضع، لذلك شغل دائما tsc --noEmit بعد الانتقال.

🔧 أدوات مجانية مرتبطة

الخطوة التالية

تابع من هذا الدليل

ذو صلة