0Pricing
React Academy · درس

بنية المجلدات واصطلاحات التسمية

نظّموا مشروع React باستخدام مجلدات قائمة على الميزات وأسماء ملفات واضحة

بنية المجلدات واصطلاحات التسمية درس مجاني في React Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحباً

في هذا الدرس ستستكشف هياكل المجلدات الشائعة لمشروعات React، وتتعلّم اصطلاحات تسمية الملفات والمكوّنات، وتفهم كيفية تنظيم الشيفرة مع نمو المشروع.

البنية الافتراضية

يحتوي مشروع Vite + React الأدنى على `src/App.jsx` و`src/main.jsx`. وهذا مناسب للعروض التجريبية الصغيرة، لكنه لا يتوسع جيدًا. ومع إضافة الميزات، أنشئ مجلدات مخصصة للحفاظ على الشيفرة المرتبطة معًا.
src/
  main.jsx
  App.jsx
  index.css

الهيكل القائم على الميزات

جمّع الملفات حسب الميزة بدلًا من نوع الملف. يحتوي مجلد كل ميزة على مكوّنها وأنماطها واختباراتها ودوالها المساعدة. يسهّل ذلك إضافة ميزة كاملة أو حذفها دفعة واحدة.
src/
  features/
    auth/
      LoginForm.jsx
      LoginForm.test.jsx
      useLogin.js
    dashboard/
      Dashboard.jsx
      useDashboardData.js
  components/     <- shared UI only
  hooks/          <- shared hooks
  lib/            <- utilities

تسمية ملفات المكوّنات

سمِّ ملفات المكوّنات باستخدام **PascalCase** بحيث يطابق الاسم اسم المكوّن: `UserCard.jsx` و`NavigationBar.jsx`. المعيار هو وضع مكوّن واحد في كل ملف. ويشير استخدام `.jsx` (أو `.tsx`) إلى أن الملف يحتوي على JSX.

تسمية الملفات غير الخاصة بالمكوّنات

تستخدم Hooks والأدوات المساعدة والثوابت تنسيق **camelCase**: `useAuth.js` و`formatDate.js` و`apiClient.js`. وتطابق ملفات الاختبار ملفات المصدر باستخدام `.test` أو `.spec`: `useAuth.test.js`.

ملفات index لاستيرادات نظيفة

تتيح لك إضافة `index.js` إلى مجلد الاستيراد من مسار المجلد بدلًا من مسار الملف الكامل. احرص على أن تقتصر ملفات الفهرسة على إعادة التصدير فقط — من دون أي منطق.
// src/features/auth/index.js
export { LoginForm } from './LoginForm';
export { useLogin } from './useLogin';

// Consumer
import { LoginForm } from '@/features/auth';

الاستيرادات المطلقة باستخدام أسماء المسارات المستعارة

اضبط اسمًا مستعارًا `@/` يشير إلى `src/` في `vite.config.js` و`tsconfig.json`. يؤدي ذلك إلى تجنّب المسارات النسبية الهشة مثل `../../../../components/Button`.
// vite.config.js
resolve: {
  alias: { '@': path.resolve(__dirname, 'src') }
}

المكوّنات المشتركة مقابل مكوّنات الميزات

ضع المكوّنات المستخدمة في ميزة واحدة فقط داخل مجلد تلك الميزة. وانقل المكوّن إلى `src/components/` عندما تحتاج إليه ميزتان أو أكثر فقط. تجنّب استخراج المكوّنات قبل أوانها.

ملفات الثوابت والإعدادات

خزّن السلاسل النصية السحرية وعناوين URL الأساسية لواجهات API والأغلفة الخاصة بمتغيرات البيئة في `src/lib/constants.js` أو `src/config.js`. لا توزّع سلاسل `process.env.VITE_API_URL` على ملفات متعددة.
// src/config.js
export const API_BASE = import.meta.env.VITE_API_URL;

الأنواع والواجهات (TypeScript)

في مشاريع TypeScript، ضع الأنواع مع الميزة أو المكوّن الذي يستخدمها. أما الأنواع المشتركة المستخدمة عبر ميزات عديدة، فأنشئ لها المجلد `src/types/` مع ملف واحد لكل مجال.

تحقق سريع

ما الميزة الرئيسية للهيكل القائم على مجلدات الميزات مقارنةً بالهيكل القائم على أنواع الملفات؟

مراجعة

استخدم مجلدات قائمة على الميزات، وPascalCase لملفات المكوّنات، وcamelCase للـ Hooks والأدوات المساعدة، وعمليات إعادة التصدير من `index.js` لاستيرادات نظيفة، واسمًا مستعارًا للمسار مثل @/ للتخلص من المسارات النسبية الطويلة.

اكتمل المقرر

تهانينا! لقد أتممت **React Strict Mode & Best Practices**. وأصبحت تفهم الآن سلوك StrictMode، وكيفية كتابة دوال عرض نقية، والاستخدام الصحيح للمفاتيح والمراجع، وإنشاء هيكل مجلدات قابل للتوسع.

الأسئلة الشائعة

هل درس «بنية المجلدات واصطلاحات التسمية» مجاني؟

نعم — نص درس «بنية المجلدات واصطلاحات التسمية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «بنية المجلدات واصطلاحات التسمية»؟

نظّموا مشروع React باستخدام مجلدات قائمة على الميزات وأسماء ملفات واضحة تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «بنية المجلدات واصطلاحات التسمية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما الذي يفعله StrictMode
  2. المكوّنات النقية وتجنّب الآثار الجانبية أثناء التصيير
  3. أفضل ممارسات Key وRef
  4. بنية المجلدات واصطلاحات التسمية
← العودة إلى React Academy