اذهب إلى المحتوى

السؤال

نشر

السلام عليكم،  أنا جديد في تعلم NextJS 13 وأستخدم أحدث إصدار مع App Router، ولكن أعاني قليلًا مع تنظيم الملفات والمسارات.

مثلاً، أين أضع صفحات التسجيل والدخول؟ وكيف يكون هيكل الملفات بشكل عام؟ أو أين أضع المكونات وكيف أفصل المكونات المترابطة؟ هل يمكنكم توضيح تلك الأمور بطريقة بسيطة مع بعض الأمثلة؟  شكرًا مقدمًا!

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله،

هناك طرق مختلفة لتنظيم ملفات ومسارات Next.js اعتمادًا على حجم وطبيعة المشروع. لكن بشكل عام يمكن التوصية بما يلي:

- صفحات التسجيل والدخول: يمكن وضعها في مجلد pages/auth مثل pages/auth/login.js وpages/auth/register.js

- المكونات: يمكن تنظيمها حسب وظيفتها مثل components/ui أو components/auth 

- المسارات: يمكن تعريفها في pages/api أو pages/api/auth

- اللاياوت: يمكن تعريفها في components/layout

- النماذج: يمكن تحديدها في utils/models

مثال بسيط:

- pages
   - api
      - auth.js
   - auth
      - login.js
      - register.js
   - index.js

- components
   - auth
      - LoginForm.js
      - RegisterForm.js
   - layout
      - MainLayout.js
   - ui
      - Button.js

- utils
   - models
      - User.js
  • 0
نشر

بشكل عام في جميع المشاريع عندما تقوم بوضع هيكلية للمشروع حاول في البداية أن تفكر بالمشروع بشكل عام و تحدد أجزاءه و مكوناته بنظرة عامة و من ثم تنتقل للتخصيص أكثر ,و قم بتجميع الأجزاء المترابطة مع بعضها و تصنيفها بحسب وظيفتها .

مثلا:

في جميع مشاريع الواجهة الأمامية يكون المشروع مقسم لعدة صفحات و كل صفحة مقسمة لعدة أجزاء و هذه الأجزاء يمكن أن تستخدم في أكثر من صفحة.

فنقوم بوضع الصفحات في مجلد ونسميه pages مثلا, و قد تكون كل مجموعة من الصفحات تعبر عن خدمة ما مثل صفحات تسجيل الدخول و تسجيل جديد فنقوم بوضع هذه الصفحات في مجلد ضمن ال pages و لنسميه مثلا auth .

و الأجزاء التي تكون الصفحات نضعها في مجلد أخر و لنسميه components و نقوم بإضافةمستويات حسب الحاجة.

بالنسبة لل css ,والصور نستطيع وضعها في مجلد assets

بالنسبة لل navbar و sidebar و footer نستطيع وضعهم في مجلد layout

ال routes تستطيع وضعهل في مجلد لوحدها .

بشكل عام حاول أن تجعل بنية مشروعك واضحة ومنظمة وغير معقدة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...