Next.js
Next.js هو إطار عمل مفتوح المصدر لتطوير الويب الكامل تم إنشاؤه بواسطة شركة Vercel الخاصة، ويوفر تطبيقات ويب قائمة على React مع عرض من جانب الخادم وعرض ثابت .
تذكر وثائق React مكتبة Next.js ضمن "مجموعات الأدوات الموصى بها"، وتنصح المطورين باستخدامها عند "بناء موقع ويب مُقدّم من جانب الخادم باستخدام Node.js ". [ 6 ] في حين أن تطبيقات React التقليدية لا تستطيع عرض محتواها إلا في متصفح العميل، فإن Next.js توسّع هذه الوظيفة لتشمل التطبيقات التي يتم عرضها على جانب الخادم.
حقوق النشر والعلامات التجارية لـ Next.js مملوكة لشركة Vercel ، [ 7 ] التي تتولى أيضًا صيانة وتطوير برنامجها مفتوح المصدر. [ 8 ]
خلفية
Next.js هو إطار عمل React يُتيح العديد من الميزات الإضافية، بما في ذلك العرض من جانب الخادم والعرض الثابت . [ 9 ] React مكتبة JavaScript تُستخدم تقليديًا لبناء تطبيقات الويب التي تُعرض في متصفح المستخدم باستخدام JavaScript. [ 10 ] مع ذلك، يُدرك المطورون وجود العديد من المشاكل في هذه الاستراتيجية، مثل عدم تلبية احتياجات المستخدمين الذين لا يملكون صلاحية الوصول إلى JavaScript أو قاموا بتعطيلها، بالإضافة إلى مشاكل أمنية محتملة، وزيادة ملحوظة في أوقات تحميل الصفحات، والإضرار بتحسين محركات البحث للموقع . [ 10 ] تتجاوز أطر العمل مثل Next.js هذه المشاكل من خلال السماح بعرض جزء من الموقع أو كله على جانب الخادم قبل إرساله إلى المستخدم. [ 10 ] [ 11 ] يُعد Next.js أحد أشهر أطر عمل React. [ 12 ] وهو أحد "سلاسل الأدوات" الموصى بها عند بدء تطبيق جديد، والتي تُوفر جميعها طبقة تجريد للمساعدة في المهام الشائعة. [ 13 ] يتطلب Next.js Node.js ويمكن تهيئته باستخدام npm .
ساهمت جوجل في مشروع Next.js، بما في ذلك 43 طلب سحب في عام 2019. [ 14 ] اعتبارًا من أكتوبر 2024، يُستخدم هذا الإطار من قِبل العديد من المواقع الإلكترونية الكبيرة، بما في ذلك وول مارت ، وآبل ، ونايكي ، ونتفليكس ، وتيك توك ، وأوبر ، وليفت ، وستاربكس ، وسبوتيفاي . [ 10 ] [ 15 ] في أوائل عام 2020، جمعت شركة Vercel مبلغ 21 مليون دولار أمريكي في جولة التمويل الأولى (Series A) لدعم تحسينات البرنامج. [ 16 ] المؤلف الأصلي للإطار، غييرمو راوخ، هو حاليًا الرئيس التنفيذي لشركة Vercel، ويتولى تيم نيوتكنز مسؤولية صيانة المشروع. [ 17 ]
تاريخ التطوير
تم إطلاق Next.js لأول مرة كمشروع مفتوح المصدر على GitHub في 25 أكتوبر 2016. [ 3 ] وقد طُوّر في الأصل بناءً على ستة مبادئ: وظائف جاهزة للاستخدام لا تتطلب أي إعداد، استخدام جافا سكريبت في كل مكان، كتابة جميع الدوال بلغة جافا سكريبت، تقسيم تلقائي للكود وعرض من جانب الخادم، جلب بيانات قابل للتكوين، توقع الطلبات، وتبسيط عملية النشر. [ 18 ]
أُعلن عن Next.js 2.0 في مارس 2017، وتضمن العديد من التحسينات التي سهّلت العمل مع المواقع الإلكترونية الصغيرة. كما زاد من كفاءة عملية البناء وحسّن قابلية التوسع لميزة استبدال الوحدات النمطية الساخنة. [ 19 ]
صدرت النسخة 7.0 في سبتمبر 2018 مع تحسينات في معالجة الأخطاء ودعم واجهة برمجة تطبيقات السياق الخاصة بـ React لتحسين معالجة المسارات الديناميكية. وكانت هذه أيضًا أول نسخة تُحدَّث إلى Webpack 4. [ 20 ]
صدرت النسخة 8.0 في فبراير 2019، وكانت أول نسخة تُتيح نشر التطبيقات بدون خوادم ، حيث يُقسّم الكود إلى دوال لامدا تُنفّذ عند الطلب. كما قلّلت هذه النسخة الوقت والموارد اللازمة للتصدير الثابت، وحسّنت أداء الجلب المسبق . [ 21 ]
تضمنت النسخة 9.3، التي أُعلن عنها في مارس 2020، تحسينات متنوعة ودعمًا عالميًا لوحدات Sass وCSS. [ 22 ]
في 27 يوليو 2020، تم الإعلان عن الإصدار 9.5 من Next.js، والذي أضاف إمكانيات جديدة تشمل إعادة التوليد الثابت التدريجي، وإعادة الكتابة، ودعم إعادة التوجيه. [ 23 ]
في 15 يونيو 2021، تم إصدار الإصدار 11 من Next.js، والذي تضمن من بين أمور أخرى: دعم Webpack 5، ومعاينة لوظيفة البرمجة التعاونية في الوقت الفعلي "Next.js Live"، ووظيفة تجريبية للتحويل التلقائي من Create React App إلى نموذج متوافق مع Next.js "Create React App Migration". [ 24 ]
في 26 أكتوبر 2021، تم إصدار Next.js 12، والذي أضاف مُصرّف Rust ، مما جعل عملية التجميع أسرع، ودعم AVIF ، ووظائف Edge والبرامج الوسيطة، واستيراد ESM وURL الأصلي. [ 25 ]
في 26 أكتوبر 2022، أصدرت شركة Vercel الإصدار 13 من Next.js. وقد جلب هذا الإصدار الرئيسي نمط توجيه جديدًا في مرحلة تجريبية ، مع إضافة App Router الذي يدعم التخطيطات، ومكونات خادم React، والبث، ومجموعة جديدة من طرق جلب البيانات. علاوة على ذلك، أعلنت Vercel عن مجموعة أدوات جديدة لتطوير واجهات المستخدم الأمامية تُسمى Turbo، تتضمن Turbopack كبديل لـ Webpack، وTurborepo لأنظمة البناء التزايدي . [ 26 ]
في مايو 2023، أصدرت شركة Vercel الإصدار 13.4 من Next.js. وقد تضمن هذا الإصدار النسخة المستقرة من App Router، مما يسمح للمطورين باستخدامه في بيئات الإنتاج. [ 27 ]
في أكتوبر 2023، أصدرت شركة Vercel الإصدار 14 من Next.js، والذي يأتي مع إدارة محسّنة للذاكرة باستخدام وقت التشغيل على الحافة. [ 28 ]
في أكتوبر 2024، أصدرت شركة Vercel الإصدار 15 من Next.js. وقد قدم هذا الإصدار أداة تجميع الملفات Turbopack المبنية على لغة Rust (وهي أسرع من Webpack)، ودعم React 19، وواجهات برمجة تطبيقات الطلبات غير المتزامنة. [ 29 ] [ 30 ]
في أكتوبر 2025، أصدرت شركة Vercel الإصدار 16 من Next.js. ولعل أبرز ميزاته، من حيث كونه مفتوح المصدر، هي واجهة برمجة تطبيقات Build Adapters، التي تُسهّل التكامل مع مزودي خدمات الاستضافة الذين لديهم متطلبات خاصة، على الرغم من أن Vercel تدعم النشر الذاتي منذ عام 2016. [ 31 ] [ 32 ]
التصميم والميزات
يدعم Next.js التنسيق باستخدام CSS ، بالإضافة إلى Scss و Sass المُجمّعة مسبقًا ، و CSS-in-JS ، و JSX المُنسّق . [ 13 ] كما أنه مبنيٌّ مع دعم TypeScript والتجميع الذكي. [ 33 ] يُستخدم مُترجم SWC مفتوح المصدر لتحويل وتجميع الكود إلى JavaScript قابل للاستخدام بواسطة المتصفح. [ 34 ] يُستخدم Webpack ، وهو أداة أخرى مفتوحة المصدر، لتجميع الوحدات لاحقًا، ولكن يجري استبداله حاليًا بـ TurboPack. [ 35 ] تُستخدم جميع هذه الأدوات مع npm في سطر الأوامر. [ 14 ]
تتمثل الميزة الرئيسية لـ Next.js في استخدامها للعرض من جانب الخادم، مما يقلل العبء على متصفحات الويب ويوفر أمانًا مُعززًا [ 36 ] . يمكن تطبيق ذلك على أي جزء من التطبيق أو على النظام بأكمله، مما يسمح بتحديد الصفحات الغنية بالمحتوى لعرضها من جانب الخادم [ 10 ] . كما يمكن تطبيقه فقط على الزوار الجدد، لتخفيف العبء على متصفحات الويب التي لم تُحمّل أيًا من موارد الموقع بعد [ 11 ] . تكتشف ميزة "إعادة التحميل الفوري" التغييرات فور حدوثها، وتعيد عرض الصفحات المناسبة لتجنب إعادة تشغيل الخادم. يتيح ذلك انعكاس التغييرات التي تُجرى على كود التطبيق فورًا في متصفح الويب، مع العلم أن بعض المتصفحات قد تتطلب تحديث الصفحة [ 10 ] . يستخدم البرنامج توجيهًا قائمًا على الصفحات لتسهيل عمل المطورين، ويتضمن دعمًا للتوجيه الديناميكي. وتشمل الميزات الأخرى استبدال الوحدات النمطية أثناء التشغيل بحيث يمكن استبدال الوحدات النمطية مباشرةً، وتقسيم الكود التلقائي الذي يتضمن فقط الكود الضروري لتحميل الصفحة، وجلب الصفحة مسبقًا لتقليل وقت التحميل. [ 10 ]
يدعم Next.js أيضًا إعادة التوليد الثابت التدريجي [ 37 ] وإنشاء المواقع الثابتة - حيث يتم عادةً إنشاء نسخة مُجمّعة من الموقع أثناء عملية البناء وحفظها في مجلد .next. عند طلب المستخدم للموقع، يتم تخزين النسخة المُجهزة مسبقًا، وهي عبارة عن صفحات HTML ثابتة، مؤقتًا وإرسالها إليه. هذا يجعل وقت التحميل سريعًا جدًا، ولكنه غير مناسب لجميع المواقع، وخاصةً المواقع التفاعلية التي تتغير باستمرار وتعتمد بشكل كبير على تفاعل المستخدم.
حماية
في نوفمبر 2025، أبلغ الباحث الأمني لاكلان ديفيدسون فريق React عن ثغرة أمنية تسمح بتنفيذ تعليمات برمجية عن بُعد دون مصادقة، وذلك من خلال خلل في بروتوكول إلغاء تسلسل مكونات خادم React. نُشر إصلاح لهذه الثغرة على npm في 3 ديسمبر، وتم الكشف عنها علنًا تحت رقم CVE-2025-55182 ("React2Shell")، وحصلت على درجة 10.0 في نظام CVSS. [ 38 ] [ 39 ] تأثرت إصدارات Next.js 15.x و16.x بهذه الثغرة، وتم تتبعها بشكل منفصل تحت رقم CVE-2025-66478، نظرًا لتأثر إعدادات App Router الافتراضية بها. رصدت فرق استخبارات التهديدات في أمازون محاولات استغلال من قبل عدة مجموعات تهديد صينية مرتبطة بالدولة في غضون ساعات من الكشف العلني عن هذه الثغرة. [ 40 ] في 5 ديسمبر، أضافت وكالة الأمن السيبراني وأمن البنية التحتية (CISA) هذه الثغرة إلى قائمة الثغرات الأمنية المعروفة والمستغلة (KEV). [ 41 ] في 6 ديسمبر 2025، أصدرت شركة Vercel حزمة npm المسماة fix-react2shell-next للتحديث إلى الإصدارات التي تم تطبيق الإصلاح الأمني عليها. [ 42 ]
انظر أيضاً
مراجع
- ↑ "vercel/next.js" . GitHub .
- ↑ "vercel/next.js" . GitHub . مؤرشف من الأصل بتاريخ 16-03-2019 . تم الاطلاع عليه بتاريخ 17-03-2019 .
- ١ ٢ "الإصدار الأول من Next.js" . جيت هاب . ١٤ مارس ٢٠١٩. مؤرشف من الأصل في ١٠ أكتوبر ٢٠٢٠. تم الاطلاع عليه في ١٧ مارس ٢٠١٩ .
- ↑ "إصدار 16.2.11" . 21 يوليو 2026. تم الاطلاع عليه في 22 يوليو 2026 .
- ↑ "إصدار v16.3.0-preview.3 · vercel/next.js" . GitHub . Vercel . تم الاسترجاع في 14-06-2026 .
- ↑ "سلاسل الأدوات الموصى بها" (HTML) . وثائق React . تم الاطلاع عليه بتاريخ 10 يوليو 2021 .
- ↑ "إرشادات العلامة التجارية لـ Next.js" . 26 أغسطس 2022.
- ↑ "تطوير. معاينة. إطلاق. لأفضل فرق تطوير واجهات المستخدم - فيرسيل" (HTML) . vercel.com . مؤرشف من الأصل بتاريخ 2021-10-06 . تم الاطلاع عليه بتاريخ 2020-09-22 .
- ↑ "الاختلافات بين المواقع الثابتة والتطبيقات المُعالجة من جانب الخادم" . مجلة سماشينغ . 2020-07-02 . تم الاطلاع عليه بتاريخ 2020-10-19 .
- 1 2 3 4 5 6 7 ثاكار، موهيت (2020). "Next.js" . في: ثاكار، موهيت (محرر). بناء تطبيقات React باستخدام العرض من جانب الخادم . بيركلي، كاليفورنيا: Apress . الصفحات 93-137 . doi : 10.1007/978-1-4842-5869-9_3 . ISBN 978-1-4842-5869-9. S2CID 241224880 . تم الاسترجاع بتاريخ 2020-10-20 .
{{cite book}}تم|work=تجاهله ( مساعدة ) - 1 2 ثاكار، موهيت (2020). "إضافة عرض من جانب الخادم إلى تطبيق React الخاص بك" . في ثاكار، موهيت (محرر). بناء تطبيقات React باستخدام العرض من جانب الخادم . بيركلي، كاليفورنيا: Apress . ص 139-152 . doi : 10.1007/978-1-4842-5869-9_4 . ISBN 978-1-4842-5869-9. S2CID 216333955 . تم الاسترجاع بتاريخ 2020-10-20 .
{{cite book}}تم|work=تجاهله ( مساعدة ) - ↑ آساي، مات (2 ديسمبر 2019). "لماذا قد يكون تطوير واجهات المستخدم هو الأفق الجديد" . TechRepublic . تم الاسترجاع في 20 أكتوبر 2020 .
- 1 2 لوكمان، أديبايي أدودوتون (17 سبتمبر 2020). "مقارنة أساليب التنسيق في Next.js" . مجلة سماشينغ . تم الاطلاع عليه بتاريخ 20 أكتوبر 2020 .
- 1 2 آساي، مات (1 فبراير 2020). "نظرة من الداخل على مساهمات جوجل في إطار عمل الويب Next.js والمزيد" . TechRepublic . تم الاسترجاع في 19 أكتوبر 2020 .
- ↑ "مجموعة تقنيات Spotify.com" . Wappalyzer . تم الاطلاع عليه بتاريخ 15 أكتوبر 2024 .
- ↑ آساي، مات (21 أبريل 2020). "كيف يهدف Next.js إلى تبسيط تطوير واجهات المستخدم" . TechRepublic . مؤرشف من الأصل في 3 يونيو 2020. تم الاطلاع عليه في 20 أكتوبر 2020 .
- ↑ دونوفان، رايان (2020-10-07). "إنشاء مواقع ثابتة بوظائف تطبيقات الصفحة الواحدة؟ هذا ما سيأتي في Next(.js)" (html) . مدونة ستاك أوفرفلو . تم الاطلاع عليه بتاريخ 2020-10-20 .
- ↑ كريل، بول (31 أكتوبر 2016). "الخطوة التالية بعد Node.js: إطار عمل لتطبيقات جافا سكريبت "العالمية"" . إنفوورلد . تم الاسترجاع في 20 أكتوبر 2020 .
- ↑ كريل، بول (28 مارس 2017). "يعمل Next.js 2.0 بشكل أفضل مع React وJavaScript" . إنفوورلد . تم الاسترجاع في 20 أكتوبر 2020 .
- ↑ كريل، بول (21 سبتمبر 2018). "إطار عمل Next.js 7 يُجمّع بشكل أسرع، ويدعم WebAssembly" . إنفوورلد . تم الاسترجاع في 20 أكتوبر 2020 .
- ↑ كريل، بول (14 فبراير 2019). "يدعم Next.js 8 الآن التطبيقات بدون خادم" . إنفوورلد . تم الاسترجاع في 20 أكتوبر 2020 .
- ↑ كريل، بول (12 مارس 2020). "تحديث Next.js يركز على إنشاء المواقع الثابتة" . إنفوورلد . تم الاسترجاع في 20 أكتوبر 2020 .
- ↑ كريل، بول (27 يوليو 2020). "Next.js يضيف خاصية التجديد التدريجي للصفحات الثابتة" . إنفوورلد . مؤرشف من الأصل في 2 أكتوبر 2020. تم الاطلاع عليه في 22 سبتمبر 2020 .
- ↑ "Next.js 11" . تم الاطلاع عليه بتاريخ 10-07-2021 .
- ↑ "Next.js 12" . nextjs.org . تم الاطلاع عليه بتاريخ 27-10-2021 .
- ^ أوربان ، بالاز (25/10/2022). "Next.js 13" . nextjs.org . تم الاسترجاع بتاريخ 2023-06-09 .
- ↑ ماركباغ، سيباستيان؛ نيوتكنز، تيم (2023-05-04). "Next.js 13.4" . nextjs.org . تم الاطلاع عليه بتاريخ 2023-06-07 .
- ↑ "Next.js 14.0.0" . nextjs.org . 2023-12-08 . تم الاطلاع عليه بتاريخ 2023-11-26 .
- ↑ "Next.js v15.0.0" . nextjs.org . 2024-10-22 . تم الاطلاع عليه بتاريخ 2024-10-22 .
- ↑ "يأتي Next.js 15 مع مُجمِّع أسرع" . InfoWorld . 24-10-2024 . تم الاطلاع عليه بتاريخ 14-04-2025 .
- ↑ "Next.js 16" . nextjs.org . 2025-10-21 . تم الاطلاع عليه بتاريخ 2025-11-11 .
- ↑ "RFC: Deployment Adapters API #77740" . github.com . 2025-04-02 . تم الاطلاع عليه بتاريخ 2025-11-11 .
- ↑ كريل، بول (14 فبراير 2019). "يدعم Next.js 8 الآن التطبيقات بدون خادم" . إنفوورلد . مؤرشف من الأصل في 2 أكتوبر 2020. تم الاطلاع عليه في 22 سبتمبر 2020 .
- ↑ "بنية: مُصرّف Next.js | Next.js" . nextjs.org . تم الاطلاع عليه بتاريخ 19-08-2023 .
- ↑ "البنية: Turbopack | Next.js" . nextjs.org . تم الاطلاع عليه بتاريخ 19-08-2023 .
- ↑ عرض الصفحات من جانب الخادم في Next.js: كيف يعمل ومتى يُستخدم https://www.ctrlturbo.com
- ↑ "التجديد الثابت التدريجي باستخدام Next.js" . فيرسيل . تم الاسترجاع في 2022-03-06 .
- ↑ "ثغرة أمنية خطيرة في مكونات خادم React - React" . react.dev . تم الاطلاع عليه بتاريخ 22-03-2026 .
- ↑ "سجل CVE: CVE-2025-55182" . www.cve.org . تم الاطلاع عليه بتاريخ 22-03-2026 .
- ↑ "مجموعات التهديد السيبراني المرتبطة بالصين تستغل بسرعة ثغرة React2Shell (CVE-2025-55182) | مدونة أمن AWS" . aws.amazon.com . 2025-12-04 . تاريخ الاطلاع: 2026-03-22 .
- ↑ "وكالة الأمن السيبراني وأمن البنية التحتية تضيف ثغرة أمنية معروفة ومستغلة إلى فهرسها | وكالة الأمن السيبراني وأمن البنية التحتية" . www.cisa.gov . 2025-12-09 . تاريخ الاطلاع: 2026-03-22 .
- ↑ ستوري، جوش؛ ماركباج، سيباستيان (2025-12-03). "تنبيه أمني: CVE-2025-66478" . nextjs.org . تم الاطلاع عليه بتاريخ 22-03-2026 .
روابط خارجية
- أطر عمل الويب باستخدام جافا سكريبت
- برنامج مرخص بموجب ترخيص MIT
- مولدات مواقع الويب الثابتة المجانية
