كيفية تحسين تطبيق Next.js للإنتاج

قبل نشر تطبيق Next.js الخاص بك في بيئة الإنتاج، هناك بعض التحسينات والأنماط التي يجب مراعاتها لتحقيق أفضل تجربة مستخدم وأداء وأمان.

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

التحسينات التلقائية

هذه تحسينات Next.js المضمنة بشكل افتراضي ولا تتطلب أي تكوين:

تهدف هذه الإعدادات الافتراضية إلى تحسين أداء تطبيقك وتقليل التكلفة وكمية البيانات المنقولة في كل طلب شبكة.

أثناء التطوير

أثناء بناء تطبيقك، نوصي باستخدام الميزات التالية لضمان أفضل أداء وتجربة مستخدم:

التوجيه والعرض

جلب البيانات والتخزين المؤقت

  • مسارات API: استخدم معالجات المسار للوصول إلى موارد الخلفية، ومنع الكشف عن الأسرار الحساسة للعميل.
  • تخزين البيانات المؤقت (Data Caching): تحقق مما إذا كانت طلبات البيانات الخاصة بك يتم تخزينها مؤقتًا أم لا، وقم بتفعيل التخزين المؤقت عند الحاجة. تأكد من تخزين الطلبات التي لا تستخدم getStaticProps مؤقتًا عند الحاجة.
  • التجديد الثابت التدريجي (Incremental Static Regeneration): استخدم التجديد الثابت التدريجي لتحديث الصفحات الثابتة بعد بنائها، دون إعادة بناء موقعك بالكامل.
  • الصور الثابتة (Static Images): استخدم دليل public لتخزين الموارد الثابتة لتطبيقك تلقائيًا، مثل الصور.

واجهة المستخدم وإمكانية الوصول

  • وحدة الخطوط (Font Module): حسّن الخطوط باستخدام وحدة الخطوط، التي تستضيف ملفات الخطوط تلقائيًا مع الموارد الثابتة الأخرى، وتزيل طلبات الشبكة الخارجية وتقلل من انزياح التخطيط (Layout Shift).
  • مكون <Image>: حسّن الصور باستخدام مكون الصورة، الذي يحسن الصور تلقائيًا ويمنع انزياح التخطيط ويقدمها بتنسيقات حديثة مثل WebP.
  • مكون <Script>: حسّن نصوص الطرف الثالث باستخدام مكون النص، الذي يؤجل النصوص تلقائيًا ويمنعها من عرقلة الخيط الرئيسي.
  • ESLint: استخدم المكون الإضافي المدمج eslint-plugin-jsx-a11y لاكتشاف مشكلات إمكانية الوصول مبكرًا.

الأمان

البيانات الوصفية وتحسين محركات البحث (SEO)

  • مكون <Head>: استخدم مكون next/head لإضافة عناوين الصفحات والوصف والمزيد.

سلامة النوع

  • TypeScript والمكون الإضافي لـ TypeScript: استخدم TypeScript والمكون الإضافي لـ TypeScript لتحسين سلامة النوع ومساعدتك في اكتشاف الأخطاء مبكرًا.

قبل الانتقال إلى الإنتاج

قبل الانتقال إلى الإنتاج، يمكنك تشغيل next build لبناء تطبيقك محليًا واكتشاف أي أخطاء في البناء، ثم تشغيل next start لقياس أداء تطبيقك في بيئة تشبه الإنتاج.

مؤشرات الأداء الأساسية للويب (Core Web Vitals)

  • Lighthouse: شغّل Lighthouse في وضع التصفح المتخفي لفهم أفضل لكيفية تجربة المستخدمين لموقعك، ولتحديد مجالات التحسين. هذا اختبار محاكاة ويجب إقرانه ببيانات الميدان (مثل مؤشرات الأداء الأساسية للويب).

تحليل الحزم

استخدم المكون الإضافي @next/bundle-analyzer لتحليل حجم حزم جافا سكريبت الخاصة بك وتحديد الوحدات الكبيرة والتبعيات التي قد تؤثر على أداء تطبيقك.

بالإضافة إلى ذلك، يمكن للأدوات التالية مساعدتك في فهم تأثير إضافة تبعيات جديدة إلى تطبيقك: