Next.js / المتقدم: أنماط المخبأ والدورة وأدلة الإصدار / الدرس 18
الانتقال إلى الإصدار 16 وتوافق الإطلاق
راجع APIs غير المتزامنة ونمط المخبأ وسلوك الأدوات كعقد تطبيق واحد ذي إصدار.
في هذه الصفحة
أهداف الدرس
- حدد تغييرات الإصدار الكبير دون إسقاط افتراضات حالية على تصحيحات أقدم.
- اربط ادعاء الإطلاق والتراجع بملفات دقيقة وعينات منفذة.
ثبت التوثيق المختار ونمط التطبيق
يراجع المقرر توثيق Next 16 الذي عرض 16.4.3 في 2026-10-28، ولا يعد ذلك أحدث تصحيح آمن مستقبلاً. وافق Next وReact وTypeScript وNode؛ ترتبط ميزات React بالإصدار لا canary مستقلة. يختلف الحد الأدنى والدعم الإنتاجي. صرح بالنمط الأساسي والبديل؛ الانتقال مراجعة سلوك عام لا رقم حزمة. يتيح التاريخ للمراجع معرفة مصدر الافتراض دون الاعتقاد أن الفحص المحلي أعطى شهادة دعم أمنية لفرع سيظل مناسباً في أي وقت لاحق.
احفظ فحوص السلوك الملموسة
تسمي JSON الفحوص ولا تدعي تنفيذها. انتظر params وsearchParams وcookies وheaders وفق عقودها ولا تعتمد الوصول المتزامن القديم. راجع انتقال proxy وmatcher، وافتراضية Turbopack وافتراض webpack المخصص. يقتضي حذف next lint وعدم تشغيل lint بالبناء مسؤولاً منفصلاً للجودة. لا تشغل codemod أو تثبيتاً على مشروع مشترك أثناء التأليف. تحضر التغييرات في نسخة معزولة مأذونة وتراجع الناتج، لأن أداة تحول صياغة لا تستطيع تقرير سياسة أهلية أو تحمل قديم بصفحة خاصة.
{"selectedMajor":16,"primaryCacheMode":"without-cache-components","checks":["async-request-apis","proxy-matcher-behavior","explicit-cache-contract","bundler-compatibility","separate-lint","server-client-boundaries","rollback-assets"],"execution":"review-plan-only"}
لا تحمل القائمة بناء أو ترقية مكتملين؛ تصف أدلة محددة لانتقال حقيقي.
احفظ عقود البيانات والصورة وحالة العميل
افحص الافتراض والتوقيع والعلامة بالتصحيح لا نصيحة غير مؤرخة؛ أهملت صيغة revalidateTag الأحادية وتختلف إرشادات Cache Components الحالية عن الأولى. احفظ عينات الصورة والمصدر والموائم. قد تبقى الحالة بشكل مختلف فاختبر النموذج والحوار وEffects عند الرجوع. لا تثبت الترجمة بيانات الهوية الصحيحة أو تحمل تكرار الكتابة. يراجع التغيير مجموعة العقود التي يراها المستخدم لا مجرد إزالة أخطاء نوعية، فقد يقبل المترجم اختيار مخبأ يغير الحداثة بصورة لا يناسبها سير التحرير الحالي.
افحص اكتمال سجل الإصدار محلياً
يطلب الشرط إصداراً ونمطاً وعلامة lint منفصلة ويفحص حقول سجل اصطناعي لا حدوث المراجعة. يربط المسار الحقيقي القفل والضبط والبناء الثابت بنتائج. قد يعتمد عميل جديد سلوكاً لا يعرفه التراجع وتطول مهمة أو حمولة عن عملية. راجع المزج والتداخل ولا تفترض أن عكس رقم يعيد النظام وأصوله وبياناته. يظل قبول السجل حاجز اكتمال صغيراً؛ قد يكتب شخص true دون تشغيل الاختبار، لذلك لا تستخدمه لإثبات أكثر من أن البنود المطلوبة سميت في مدخل المراجعة.
function releaseRecord(value) {
return value.major===16 && ["traditional","cache-components"].includes(value.cacheMode) && value.separateLintReviewed===true;
}
console.assert(releaseRecord({major:16,cacheMode:"traditional",separateLintReviewed:true}));
console.assert(!releaseRecord({major:16,cacheMode:"traditional"}));
ينجح المكتمل ويفشل فاقد المراجعة دون ترقية أو lint أو بناء Next.
انشر ادعاءات يدعمها التحقق الفعلي فقط
تغطي المراجعة المسار وAPI والاستيراد والسياسة والإخراج والمخبأ والفعل والمتصفح والاستضافة، وتربط كل نتيجة بالضبط والمشغل. يشغل المقرر JavaScript وJSON محليين فقط وتبقى الأجزاء runnable:false دون ترجمة Next أو React أو تثبيت أو خادم أو قاعدة أو نشر. اختر تصحيحات مدعومة وأعد الحدود معزولاً مأذوناً قبل التطبيق. تجعل القيود المادة نافعة دون شهادة إصدار مختلقة. لا ينهي نجاح مثال حتمي مسؤولية مراجعة ما قد يحدث أثناء بناء حقيقي يجلب بيانات أو يولد صفحات تحت بيئة مختلفة.
الأخطاء الشائعة وإصلاحها
تبقى صيغة params متزامنة قديمة بعد انتقال ناقص
- لماذا يحدث؟
- لم تراجع عقود APIs الطلب مع الترقية الكبرى.
- كيف تصلحه؟
- استخدم الوصول غير المتزامن وافحص توقيع المسار الفعلي.
- كيف تتجنب تكراره؟
- احفظ عينات الخصائص غير المتزامنة للصفحة والبيانات والمعالج.
يوصف نجاح البناء كاكتمال تحقق lint
- لماذا يحدث؟
- افترض ثبات سلوك أداة حذفت أو تغيرت.
- كيف تصلحه؟
- نفذ مرحلة الجودة المعتمدة الصريحة بصورة منفصلة.
- كيف تتجنب تكراره؟
- سجل نتائج الترجمة والجودة مستقلتين.
يقدم التراجع ملفات خادم وعميل غير متوافقة
- لماذا يحدث؟
- اقتصرت المراجعة على رقم حزمة واحد.
- كيف تصلحه؟
- احفظ مجموعات ملفات متوافقة وتحقق منها.
- كيف تتجنب تكراره؟
- اختبر تداخل العميل والخادم القديمين والجديدين المقصود.
اختبر فهمك
1. هل يثبت releaseRecord نجاح lint أو ترجمة Next؟
اعرض الحل المشروح
لا. يفحص الشرط حقول سجل محلي معلنة فقط. يجب أن يقدم مسار الإصدار الحقيقي نتائج موثوقة للأدوات وهويات نواتج بناء غير قابلة للتغيير، لا أسماء ملفات ثابتة فحسب. احتفظ بالدالة كحاجز لاكتمال السجل، ولا تحول علامة مراجعة منطقية إلى دليل على أن إطاراً أو متصفحاً أو تكاملاً مع مصدر نفذ بنجاح.
2. لماذا تحفظ الإعداد مع عينة انتقال المخبأ؟
اعرض الحل المشروح
قد يختلف السلوك والخيارات للكود نفسه باختلاف النمط. قد تنجح عينة بلا ضبط لسبب خاطئ أو تفسر بقواعد نموذج آخر. ثبت النمط والإصدار وافحص البناء والطلب والعميل وفق المجموعة نفسها.
أهم ما تعلمته
- انتقال الإصدار مراجعة للسلوك العام والتشغيلي.
- تجعل الملفات الدقيقة والحدود الصادقة ادعاءات التوافق قابلة للتقييم.