إطار Next.js

مقدمة إلى Next.js

25 دقيقة الدرس 1 من 40

ما هو Next.js؟

Next.js هو إطار عمل قوي لـ React أنشأته شركة Vercel يمكّنك من بناء تطبيقات ويب متكاملة مع مكونات React في الواجهة الأمامية وقدرات من جانب الخادم مدمجة. يوسع Next.js قدرات React من خلال توفير بنية إضافية وميزات وتحسينات تجعل التطوير أسرع وأكثر كفاءة.

بينما React هي مكتبة JavaScript لبناء واجهات المستخدم، فإن Next.js هو إطار عمل متكامل يضيف ميزات أساسية مثل العرض من جانب الخادم، وتوليد المواقع الثابتة، ومسارات API، والتقسيم التلقائي للكود. فكر في React كأساس وNext.js كمبنى كامل بكل البنية التحتية الضرورية.

مفهوم أساسي: غالبًا ما يُوصف Next.js بأنه "إطار عمل React للإنتاج" لأنه يوفر جميع الميزات التي تحتاجها لبناء تطبيقات جاهزة للإنتاج دون الحاجة إلى تكوين أدوات بناء معقدة أو القلق بشأن تحسينات الأداء.

لماذا تختار Next.js؟

أصبح Next.js واحدًا من أكثر أطر العمل شعبية لتطوير React، ولسبب وجيه. إليك الأسباب المقنعة لاختيار Next.js لمشروعك القادم:

1. تحسين الأداء جاهز من البداية

يقوم Next.js تلقائيًا بتحسين تطبيقك للحصول على أفضل أداء دون الحاجة إلى تكوين يدوي:

  • التقسيم التلقائي للكود: يتم تحميل JavaScript المطلوب للصفحة الحالية فقط، مما يقلل من وقت التحميل الأولي
  • تحسين الصور: مكون الصورة المدمج يحسّن الصور تلقائيًا لمختلف الأجهزة وأحجام الشاشات
  • تحسين الخطوط: يحسّن تلقائيًا الخطوط المخصصة بدون تغيير في التخطيط
  • تحسين السكريبتات: التحكم في تحميل سكريبتات الطرف الثالث لمنعها من حجب عرض الصفحة

2. استراتيجيات عرض متعددة

يمنحك Next.js المرونة لاختيار أفضل طريقة عرض لكل صفحة:

  • توليد الموقع الثابت (SSG): عرض مسبق للصفحات في وقت البناء لأقصى سرعة
  • العرض من جانب الخادم (SSR): عرض الصفحات عند الطلب على الخادم للمحتوى الديناميكي
  • التجديد الثابت التدريجي (ISR): تحديث المحتوى الثابت بعد النشر دون إعادة البناء
  • العرض من جانب العميل (CSR): عرض React التقليدي في المتصفح
نصيحة احترافية: يمكنك مزج ومطابقة استراتيجيات العرض ضمن نفس التطبيق. على سبيل المثال، استخدم SSG لصفحات التسويق، وSSR للوحات تحكم المستخدم، وCSR للمكونات التفاعلية للغاية.

3. قدرات SEO متفوقة

على عكس تطبيقات React التقليدية التي تعرض من جانب العميل، يمكن لـ Next.js عرض الصفحات على الخادم، مما يضمن قدرة محركات البحث على الزحف وفهرسة المحتوى بشكل صحيح. هذا حاسم لـ:

  • تصنيفات أفضل في محركات البحث
  • تحسين المشاركة على وسائل التواصل الاجتماعي مع وسوم meta مناسبة
  • وقت أسرع للبايت الأول (TTFB)
  • تحسين درجات Core Web Vitals

4. نظام توجيه مدمج

يتميز Next.js بموجه يعتمد على نظام الملفات يلغي الحاجة إلى مكتبات التوجيه مثل React Router. ببساطة أنشئ ملفات في مجلد pages أو app، وستصبح تلقائيًا مسارات في تطبيقك.

// بنية الملفات
pages/
  index.js          // يوجّه إلى /
  about.js          // يوجّه إلى /about
  blog/
    index.js        // يوجّه إلى /blog
    [slug].js       // يوجّه إلى /blog/:slug

5. مسارات API

يتيح لك Next.js إنشاء نقاط نهاية API كجزء من تطبيقك، مما يلغي الحاجة إلى خادم خلفي منفصل لواجهات API البسيطة:

// pages/api/user.js
export default function handler(req, res) {
  res.status(200).json({ name: 'John Doe' })
}
// يمكن الوصول إليها على /api/user

6. دعم TypeScript

يتمتع Next.js بدعم ممتاز مدمج لـ TypeScript بدون تكوين. ببساطة أنشئ ملف tsconfig.json، وسيقوم Next.js تلقائيًا بتكوين TypeScript لمشروعك.

7. تجربة المطور

يركز Next.js على توفير تجربة ممتازة للمطور مع ميزات مثل:

  • التحديث السريع: ردود فعل فورية على التعديلات دون فقدان حالة المكون
  • تراكب الأخطاء: رسائل خطأ مفيدة مع أرقام الأسطر الدقيقة والسياق
  • دعم CSS مدمج: استيراد ملفات CSS مباشرة في مكوناتك
  • متغيرات البيئة: دعم مدمج لملفات .env

React مقابل Next.js: فهم الفرق

لتقدير Next.js بالكامل، من المهم فهم كيف يختلف عن React البسيط:

React (مكتبة)

  • العرض من جانب العميل افتراضيًا
  • يتطلب مكتبات إضافية للتوجيه (React Router)
  • لا يوجد تحسين SEO مدمج
  • تكوين يدوي لتقسيم الكود
  • يتطلب خلفية منفصلة لنقاط نهاية API
  • مرونة أكثر لكن إعداد أكثر مطلوب

Next.js (إطار عمل)

  • خيارات عرض متعددة (SSR، SSG، ISR، CSR)
  • نظام توجيه مدمج يعتمد على الملفات
  • SEO ممتاز جاهز من البداية
  • تقسيم تلقائي للكود
  • مسارات API مدمجة
  • بنية محددة مع أفضل الممارسات مدمجة
مهم: Next.js ليس بديلاً عن React—إنه يبني فوق React. ما زلت تكتب مكونات React وتستخدم خطافات React، لكن Next.js يوفر الإطار والبنية التحتية حول كود React الخاص بك.

نظرة عامة على الميزات الرئيسية

لنستكشف الميزات الأساسية التي تجعل Next.js قويًا:

1. العرض الهجين

يتيح لك Next.js اختيار طريقة العرض لكل صفحة. يمكنك الحصول على صفحات ثابتة وصفحات معروضة من الخادم وصفحات معروضة من العميل كلها في نفس التطبيق.

2. التحسين الثابت التلقائي

يحدد Next.js تلقائيًا ما إذا كان يمكن توليد صفحة بشكل ثابت (إذا لم تكن لديها متطلبات بيانات من جانب الخادم) ويحسّنها وفقًا لذلك.

3. بدون تكوين

يعمل Next.js مباشرة مع إعدادات افتراضية معقولة لكنه يظل قابلاً للتخصيص بشكل كبير عند الحاجة. لا حاجة لتكوين webpack في معظم الحالات.

4. البرمجيات الوسيطة

تشغيل الكود قبل اكتمال الطلب، مما يتيح لك تعديل الاستجابة عن طريق إعادة الكتابة أو إعادة التوجيه أو إضافة رؤوس أو حتى خدمة HTML مباشرة.

5. التدويل (i18n)

دعم مدمج للتوجيه الدولي واكتشاف اللغة، مما يسهل بناء تطبيقات متعددة اللغات.

6. دعم CSS وSass مدمج

استيراد ملفات CSS وSass مباشرة في مكوناتك دون أي تكوين. يدعم Next.js أيضًا وحدات CSS ومكتبات CSS-in-JS.

7. وضع المعاينة

تجاوز التوليد الثابت لصفحات محددة لمعاينة المحتوى المسودة من نظام إدارة محتوى بدون رأس قبل النشر.

متى تستخدم Next.js

Next.js خيار ممتاز لأنواع مختلفة من التطبيقات:

حالات الاستخدام المثالية:

  • مواقع التسويق: SEO حاسم، والتوليد الثابت يوفر أقصى أداء
  • مواقع التجارة الإلكترونية: صفحات المنتجات تحتاج SEO، والدفع يمكن أن يستخدم العرض من الخادم
  • المدونات ومواقع المحتوى: التوليد الثابت مع ISR للتحديثات
  • تطبيقات SaaS: مزيج من صفحات التسويق العامة ولوحات التحكم المصادق عليها
  • مواقع التوثيق: مثالي للتوليد الثابت مع وظيفة البحث

قد لا يكون مثاليًا لـ:

  • صفحات هبوط بسيطة (قد يكون مبالغة)
  • تطبيقات تتطلب عرض 100٪ من جانب العميل
  • مشاريع حيث تحتاج التحكم الكامل في عملية البناء
  • تطبيقات الوقت الفعلي مثل الدردشة (استخدم أطر WebSocket بدلاً من ذلك)

نظام Next.js البيئي

Next.js جزء من نظام بيئي أكبر يتضمن:

  • Vercel: الشركة وراء Next.js، تقدم أفضل منصة نشر لتطبيقات Next.js
  • Turbopack: الموحد الجديد المبني على Rust (خليفة Webpack)
  • SWC: مترجم TypeScript/JavaScript فائق السرعة مكتوب بـ Rust
  • React Server Components: Next.js رائد في تبني مكونات خادم React
هل تعلم؟ شركات كبرى مثل Netflix وUber وTwitch وTikTok وNike تستخدم Next.js في الإنتاج. يشغل الإطار بعض المواقع الأكثر زيارة على الإنترنت.

البدء

للعمل مع Next.js، يجب أن يكون لديك:

  • معرفة أساسية بـ HTML وCSS وJavaScript
  • فهم أساسيات React (المكونات، الخصائص، الحالة، الخطافات)
  • Node.js مثبت على جهازك (الإصدار 16.8 أو أحدث)
  • محرر أكواد (يُنصح بـ VS Code)
تمرين:
  1. ابحث عن ثلاثة مواقع تزورها بانتظام وحاول تحديد ما إذا كانت مبنية بـ Next.js (تلميح: انظر إلى مصدر HTML أو استخدم أدوات مثل Wappalyzer)
  2. فكر في مشروع تود بناءه. اكتب ميزات Next.js الأكثر فائدة لحالة الاستخدام الخاصة بك
  3. اقرأ الصفحة الرئيسية لتوثيق Next.js الرسمي لتتعرف على الموارد الرسمية

الخلاصة

Next.js هو إطار عمل React شامل يوفر كل ما تحتاجه لبناء تطبيقات ويب حديثة وعالية الأداء. يوسع React بالعرض من جانب الخادم، والتوليد الثابت، ومسارات API، والعديد من التحسينات، كل ذلك مع الحفاظ على تجربة ممتازة للمطور.

في الدرس القادم، سنتعمق في إعداد مشروع Next.js الأول واستكشاف بنية المشروع. بنهاية هذه الدورة، ستكون قادرًا على بناء تطبيقات كاملة الميزات وجاهزة للإنتاج باستخدام Next.js.