0Pricing
Frontend Academy · درس

التوجيه القائم على الملفات والاستيرادات التلقائية

أنشئ الصفحات داخل المجلد pages/ للتوجيه التلقائي، وتعرّف على المقاطع الديناميكية، واستفد من الاستيرادات التلقائية في Nuxt للمكوّنات وcomposables

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

Nuxt 3 — إطار SSR الخاص بـ Vue

يمثّل Nuxt 3 بالنسبة إلى Vue ما يمثّله Next.js بالنسبة إلى React: إطارًا ذا آراء واضحة يدعم SSR وSSG والتوجيه القائم على الملفات وجلب البيانات ونظام الاستيراد التلقائي المتكامل.

مجلد pages/

ضع مكوّنات Vue في pages/ لتصبح مسارات — من دون الحاجة إلى إعداد للموجّه.

pages/
  index.vue        // route: /
  about.vue        // route: /about
  blog/
    index.vue      // route: /blog
    [slug].vue     // route: /blog/:slug
  users/
    [id]/
      profile.vue  // route: /users/:id/profile

المسارات الديناميكية باستخدام [param]

تنشئ الأقواس المربعة في أسماء الملفات مقاطع ديناميكية. ويمكنك الوصول إلى المعاملات باستخدام useRoute().

<!-- pages/blog/[slug].vue -->
<script setup>
const route = useRoute();
const { data: post } = await useFetch(`/api/posts/${route.params.slug}`);
</script>

<template>
  <article>
    <h1>{{ post.title }}</h1>
    <div v-html="post.body" />
  </article>
</template>

المسارات الشاملة

استخدم [...slug].vue للمسارات الشاملة — إذ يطابق أي مسار داخل ذلك المجلد.

// pages/docs/[...slug].vue
// matches /docs/getting-started, /docs/api/auth, etc.

<script setup>
const route = useRoute();
console.log(route.params.slug); // ['api', 'auth']
</script>

التنسيقات

تغلف المكوّنات الموجودة في layouts/ الصفحات. حدّد التنسيق النشط لكل صفحة باستخدام definePageMeta.

<!-- layouts/dashboard.vue -->
<template>
  <div class="dashboard">
    <Sidebar />
    <main><slot /></main>
  </div>
</template>

<!-- pages/dashboard/index.vue -->
<script setup>
definePageMeta({ layout: 'dashboard' });
</script>

التنسيق الافتراضي

يُطبَّق layouts/default.vue على أي صفحة لا تحدد تنسيقًا.

التنقل باستخدام NuxtLink

استخدم <NuxtLink> للتنقل على جانب العميل — إذ يجلب Nuxt مسبقًا الصفحات المرتبطة عند تمرير المؤشر.

<template>
  <nav>
    <NuxtLink to="/">Home</NuxtLink>
    <NuxtLink to="/blog">Blog</NuxtLink>
    <NuxtLink :to="`/users/${userId}`">Profile</NuxtLink>
  </nav>
</template>

التنقل البرمجي

استخدم navigateTo() في setup أو معالجات الأحداث.

<script setup>
async function onLogin() {
  await login(form);
  await navigateTo('/dashboard');
}
</script>

الاستيراد التلقائي — المكوّنات

ضع مكوّنًا في components/ واستخدمه في أي قالب من دون استيراد — إذ يفحصه Nuxt ويسجّله.

components/
  AppHeader.vue
  UserCard.vue

<!-- any page or component: -->
<template>
  <AppHeader />
  <UserCard :user="user" />
</template>

الاستيراد التلقائي — Composables

يُستورد تلقائيًا كل Composable موجود في composables/.

// composables/useCounter.ts
export const useCounter = () => {
  const count = ref(0);
  const increment = () => count.value++;
  return { count, increment };
};

<!-- any component: -->
<script setup>
const { count, increment } = useCounter(); // no import needed!
</script>

الاستيراد التلقائي — الأدوات

تُستورد أدوات Vue (ref وreactive وcomputed وwatch وغيرها) وأدوات Nuxt (useFetch وuseState وnavigateTo) تلقائيًا.

تعطيل الاستيراد التلقائي

يمكنك تعطيل استيراد تلقائي محدد في nuxt.config.ts إذا تعارض مع شيء آخر.

export default defineNuxtConfig({
  imports: {
    autoImport: false // disable all auto-imports
  }
});

تحقق سريع

كيف تنشئ في Nuxt 3 مسارًا يطابق أي مسار ضمن /docs/؟

مراجعة: التوجيه والاستيراد التلقائي

ينشئ مجلد pages/ المسارات. استخدم [param] للمسارات الديناميكية و[...slug] للمسارات الشاملة. تُختار التنسيقات الموجودة في layouts/ عبر definePageMeta. استخدم NuxtLink وnavigateTo للتنقل. تتوفر الاستيرادات التلقائية للمكوّنات وcomponents/ وcomposables/ وأدوات Vue وNuxt — من دون استيرادات يدوية. عطّلها في nuxt.config.ts عند الحاجة.

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

هل درس «التوجيه القائم على الملفات والاستيرادات التلقائية» مجاني؟

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

ماذا ستتعلم في «التوجيه القائم على الملفات والاستيرادات التلقائية»؟

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

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

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

كم من الوقت يستغرق درس «التوجيه القائم على الملفات والاستيرادات التلقائية»؟

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

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

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

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

  1. التوجيه القائم على الملفات والاستيرادات التلقائية
  2. useFetch وuseAsyncData
  3. وحدات Nuxt: الصور والمصادقة وi18n
  4. النشر: ثابت مقابل SSR
← العودة إلى Frontend Academy