Vue.js: مقدمة إلى Vue.js

آخر تحديث: 2026-08-26

Vue.js هو framework جافا سكريبت تدريجي لإنشاء واجهات المستخدم — وهو يتيح لك تطوير تطبيقات الويب بكفاءة باستخدام نهج إعلاني قائم على المكونات، بدءًا من النماذج البسيطة وصولاً إلى تطبيقات الويب أحادية الصفحة (SPA) المعقدة على مستوى المؤسسات.

تم تصميم هذا البرنامج التعليمي للمبتدئين الذين لديهم معرفة أساسية بـ HTML و CSS و JavaScript. يبدأ البرنامج بالمفاهيم الأساسية لـ Vue 3 ويتطور تدريجيًّا حتى تتمكن من تطوير نظام خلفي متكامل ومتوسط الحجم للتجارة الإلكترونية بشكل مستقل. يختلف مسار التعلم هنا عن مسار W3Schools و Newbie Tutorial — فنحن نتبع نهجًا يُركز أولًا على Vue 3 و Composition API، باستخدام مشروع تجارة إلكترونية حقيقي (نظام خلفي SaaS يضم 5,000 تاجر و30,000 وحدة تخزين) كتمرين عملي.

1. ما ستتعلمه



2. قصة اختيار تقنية الواجهة الأمامية لفريق SaaS

(1) التحدي: خمسة أطر عمل — أي منها يجب أن تختار؟

في شركة SaaS سريعة النمو تضم 200,000 سطر من كود الواجهة الأمامية، تواجه أليس، المسؤولة التقنية، قرارًا صعبًا في الربع الأول من عام 2026:

ويزيد مدير المنتج تشارلي من الضغط قائلاً:

"لدينا 30,000 وحدة تخزين (SKU) في لوحة التحكم الإدارية. تستغرق عملية التصفية 8 ثوانٍ في تطبيق React الحالي. ويستغرق المطورون الجدد 3 أسابيع لإطلاق أول ميزة لهم. نحن بحاجة إلى تحسين أداء كل من هذين الجانبين بمقدار 5 أضعاف — بحلول الربع الثالث من عام 2026."

(2) الحل في Vue 3

بعد 4 أسابيع من التقييم، اختارت أليس Vue 3. وإليكم الأسباب:

TEXT 📖 للعرض فقط
Bundle size:     850KB → 280KB    (-67%)
Initial load:    3.2s  → 0.9s    (-72%)
Onboarding time: 3 weeks → 1 week (-67%)
Job market:      growing 35% YoY

إن الطبيعة «التدريجية» لـ Vue تعني أن أليس يمكنها تبنيها بشكل تدريجي:

  1. الأسبوع الأول: استبدال صفحة واحدة باستخدام Vue 3 (tag نصية CDN، بدون خطوة بناء)
  2. الأسبوع الرابع: تحويل 10 صفحات إلى مكونات ملف واحد
  3. الأسبوع 12: حزمة SPA كاملة مع جهاز التوجيه + Pinia
  4. الأسبوع 24: تم ترحيل 200,000 سطر، دون أي توقف في الخدمة

(3) الإيرادات

بعد 6 أشهر من استخدام Vue 3، قام الفريق بقياس ما يلي:



3. ما هو Vue؟

Vue (تُنطق /vjuː/، على غرار كلمة "view") هو framework جافا سكريبت تقدمي لإنشاء واجهات المستخدم. أنشأه إيفان يو في عام 2014، ويقوم حالياً بصيانته فريق Vue.js الأساسي والمجتمع العالمي.

(1) التعريفات الأساسية + مخطط بنية Vue 3

100%
graph TB
    subgraph Vue3Ecology
        V[Vue 3 Core<br/>@vue/runtime-core]
        R[Vue Router 4<br/>Route Management]
        P[Pinia<br/>State Management]
        S[SSR/SSG<br/>Nuxt 3]
        T[Vite<br/>Build Tools]
        U[UI Component Library<br/>Element Plus/Naive UI]
    end
    
    V --> R
    V --> P
    V --> S
    T --> V
    U --> V
    
    style V fill:#42b883,color:#fff
    style R fill:#35495e,color:#fff
    style P fill:#ffd02f
    style S fill:#00dc82
    style T fill:#646cff,color:#fff

(2) خمس ميزات رئيسية

السمة المعنى المقارنة
أطر العمل التقدمية يمكن اعتمادها حسب الحاجة، بدءًا من المكتبات الخفيفة الوزن وصولاً إلى أطر العمل الكاملة يتطلب React استخدام JSX؛ بينما يوفر Angular مجموعة كاملة من الأدوات
البيانات التفاعلية يتم تحديث واجهة المستخدم تلقائيًا مع تغير البيانات، دون الحاجة إلى التعامل يدويًّا مع DOM يتطلب jQuery معالجة يدوية $(sel).text()
قائم على المكونات واجهة المستخدم مقسمة إلى مكونات مستقلة وقابلة لإعادة الاستخدام؛ مكونات ملف واحد (SFC) علامات HTML غير قابلة لإعادة الاستخدام؛ يمكن دمج المكونات
العرض الوصفي يصف «كيف ينبغي أن يبدو»، بدلاً من «كيفية جعله يبدو هكذا» التلاعب الإمرائي بـ DOM
منحنى تعلم سهل كل ما تحتاجه للبدء هو معرفة أساسية بـ HTML/CSS/JS؛ ويمكن تعلم لغة TS تدريجيًّا أما بالنسبة لـ Angular، فستحتاج إلى تعلم «الديكور» و«التوصيل بالاعتماد» أولاً

(3) حالات استخدام Vue

السيناريو مدى الملاءمة الوصف
منتجعات صحية صغيرة ومتوسطة الحجم (التجارة الإلكترونية/إدارة علاقات العملاء/الإدارة) ⭐⭐⭐⭐⭐ status الاستخدام المثالية، الاستخدام السائد لـ Vue
تطبيقات المؤسسات ⭐⭐⭐⭐ يتطلب Nuxt 3 + بنية الواجهة الأمامية المصغرة
H5 للجوال ⭐⭐⭐⭐ uni-app / framework Vant
تطبيق سطح المكتب ⭐⭐⭐ Electron + Vue (حل متوسط)
مدونة ثابتة ⭐⭐ Astro / Nuxt Content هو الخيار الأنسب
عنصر واجهة مستخدم مدمج ⭐⭐⭐⭐⭐ حجم ملف صغير جدًّا، يتم تحميله مباشرةً من شبكة توزيع المحتوى (CDN)


4. Vue 3 مقابل Vue 2: الاختلافات الرئيسية

(1) نظرة عامة على التحسينات الرئيسية

البعد Vue 2 Vue 3 التأثير
الأنظمة التفاعلية Object.defineProperty Proxy أداء محسّن، يدعم المصفوفات/الخرائط/المجموعات
أسلوب واجهة برمجة التطبيقات (API) التركيز على واجهة برمجة التطبيقات (API) الخاصة بالخيارات إعطاء الأولوية لواجهة برمجة التطبيقات (API) الخاصة بالتركيب إعادة استخدام المنطق بشكل أكثر مرونة
TypeScript يتطلب تهيئة يدوية دعم من الدرجة الأولى استنتاج الأنواع ↑
حجم الحزمة ~33 كيلوبايت ~20 كيلوبايت (مضغوط بتنسيق gzip) تحميل ↑
سرعة العرض 1x 1.2–2x الأداء ↑
Tree-shaking غير مدعوم مدعوم بالكامل لا يتم تضمين الكود غير المستخدم
جزء العقد أحادية الجذر العقد متعددة الجذور قوالب أكثر مرونة
التنقل الفوري لا شيء مدمج تنفيذ مبسط باستخدام نافذة منبثقة/درج
التعليق لا شيء مدمج معالجة سلسة للمكونات غير المتزامنة

(2) لماذا يُوصى باستخدام Vue 3؟

TEXT 📖 للعرض فقط
✅ Vue 3 is the current major version (2020-09 Published, 2026 Stable 5+ years)
✅ Vue 2 As of 2023-12 EOL(End of Life),No longer maintained
✅ 90% New Project,100% The new ecosystem tools are all based on Vue 3
✅ Composition API is the Modern Writing Style Recommended by the Vue Team
✅ TypeScript Significant Improvement in Support,Team Code Quality ↑

❌ Vue 2 This is only necessary when maintaining legacy projects.
❌ Not studying Vue 3 = Missed Vue Ecology 95% Modern tools


5. واجهة برمجة التطبيقات (API) الخاصة بـ «Composition» مقابل واجهة برمجة التطبيقات (API) الخاصة بـ «Options»

(1) مقارنة بين نمطين من واجهات برمجة التطبيقات (API)

الجانب واجهة برمجة التطبيقات (API) للخيارات واجهة برمجة التطبيقات (API) للتركيب
أسلوب الكتابة أقسام البيانات / الطرق / الحسابات setup() مجموعة الدوال
إعادة استخدام المنطق الميكسينات (غير موصى بها) الكومبوزابلز (موصى بها)
استدلال الأنواع عام ممتاز (مصمم خصيصًا لـ TS)
تنظيم الكود مجمَّع حسب نوع الخيار مجمَّع حسب المنطق التجاري
منحنى التعلم سهل (مناسب للمبتدئين) صعب بعض الشيء (يتطلب فهمًا لـ ref/reactive)
مناسب لـ صغير إلى متوسط متوسط إلى كبير (موصى به لجميع الأحجام)

(2) أمثلة على واجهة برمجة تطبيقات الخيارات

JS
// Options API - Group by option
export default {
  data() {
    return { count: 0, name: 'Alice' }
  },
  computed: {
    doubleCount() {
      return this.count * 2
    }
  },
  methods: {
    increment() {
      this.count++
    }
  },
  mounted() {
    console.log('Component mounted')
  }
}

(3) مثال على واجهة برمجة التطبيقات (API) الخاصة بـ Composition

JS
// Composition API - Logical Blocking
import { ref, computed, onMounted } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const name = ref('Alice')
    
    const doubleCount = computed(() => count.value * 2)
    
    function increment() {
      count.value++
    }
    
    onMounted(() => {
      console.log('Component mounted')
    })
    
    return { count, name, doubleCount, increment }
  }
}
▶ جرّب الكود

(4) أيهما يجب أن أختار؟

اقتراحات سيناريوهات
استخدم واجهة برمجة التطبيقات (API) الخاصة بـ Composition في المشاريع الجديدة الخيار المفضل لمشاريع Vue 3
صيانة المشاريع القديمة الحفاظ على واجهة برمجة التطبيقات (API) الخاصة بـ Options (دون إتلاف الكود الحالي)
العديد من الأعضاء الجدد في الفريق واجهة برمجة التطبيقات (API) الخاصة بـ«Composition» أسهل في التعلم في الواقع (لا يوجد التباس بشأن «this»)
منطق الأعمال المعقد واجهة برمجة التطبيقات (API) للتركيب (تنظم الكود وفقًا لمنطق الأعمال من أجل مزيد من الوضوح)


6. منظومة Vue 3

Vue 3 ليس مجرد framework، بل هو منظومة كاملة لتطوير الواجهة الأمامية.

(1) رسم تخطيطي لمكونات النظام البيئي

100%
graph LR
    subgraph Core
        V[Vue 3 Core]
    end
    
    subgraph Official Recommendation
        R[Vue Router 4]
        P[Pinia]
        T[Vite]
    end
    
    subgraph Community Ecosystem
        E[Element Plus]
        N[Naive UI]
        U[UnoCSS]
        I[Vue I18n]
    end
    
    V --> R
    V --> P
    V --> T
    V --> E
    V --> N
    V --> U
    V --> I
    
    style V fill:#42b883,color:#fff

(2) جدول مرجعي سريع للأدوات الرئيسية

الأدوات الأدوار هل يجب تعلمها؟ الموقع الرسمي
Vue 3 Core الإطار نفسه ✅ لا بد من تعلمه vuejs.org
Vite أداة بناء، أسرع بخمس مرات ✅ لا بد من تعلمها vitejs.dev
Vue Router 4 إدارة التوجيه (أمر أساسي لتطبيقات SPAs) ✅ يجب تعلمها router.vuejs.org
Pinia إدارة الstatus (بديل Vuex) ✅ لا بد من تعلمها pinia.vuejs.org
Element Plus مكتبة واجهة المستخدم لسطح المكتب اختياري element-plus.org
Naive UI مكتبة واجهة مستخدم للكمبيوتر المكتبي اختياري naiveui.com
Vue I18n التدويل اختياري vue-i18n.intlify.dev
Nuxt 3 framework SSR/SSG اختياري nuxt.com
VueUse مكتبة عملية قابلة للتركيب اختياري vueuse.org

(3) مسار تعليمي شامل

TEXT 📖 للعرض فقط
Stage 1(This Tutorial Phase 1-3):Vue 3 Core + Composition API
Stage 2 (This Tutorial Phase 4): Vue Router + Pinia + Advanced API
Stage 3(This Tutorial Phase 5):Vite + Real Projects + Deployment
Advanced (Recommended Next Steps): Nuxt 3 SSR / Vitest Test / Performance Optimization


7. مثال كامل: تطبيقك الأول باستخدام Vue 3

▶ مثال: عداد «Hello Vue 3» (SFC — مكون ملف واحد)

HTML 📖 للعرض فقط
<!-- App.vue - First Vue 3 Applications -->
<template>
  <div class="hello-vue">
    <h1>{{ greeting }}</h1>
    <p>You clicked the button <strong>{{ count }}</strong> times.</p>
    <button @click="increment">Click me</button>
    <p class="author">By {{ author }}, {{ currentYear }}</p>
  </div>
</template>

<script setup>
// Composition API + <script setup> Syntax sugar
import { ref, computed } from 'vue'

const count = ref(0)
const author = ref('Alice')

// Computed Properties:Automatic Dependency Tracking
const currentYear = computed(() => new Date().getFullYear())
const greeting = computed(() => `Hello Vue 3! Welcome, ${author.value}!`)

// Methods
function increment() {
  count.value++
}
</script>

<style scoped>
.hello-vue {
  text-align: center;
  padding: 2rem;
  font-family: system-ui, sans-serif;
}
button {
  background: #42b883;
  color: white;
  border: none;
  padding: 0.5rem 1.5rem;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1rem;
}
button:hover {
  background: #35495e;
}
.author {
  color: #666;
  font-size: 0.9rem;
  margin-top: 2rem;
}
</style>
42 سطر من الكود المنطقي (تجاوز الحد 40, للعرض فقط)

الناتج (بعد النقر على الزر):

TEXT 📖 للعرض فقط
Hello Vue 3! Welcome, Alice!

You clicked the button 5 times.

[Click me]

By Alice, 2026

▶ مثال: كيفية دمج شبكة توزيع المحتوى (CDN) (التشغيل في 5 أسطر من HTML)

HTML
<!DOCTYPE html>
<html>
<head><title>Vue 3 Hello</title></head>
<body>
  <div id="app">
    <h1>{{ message }}</h1>
    <button @click="count++">Clicked {{ count }} times</button>
  </div>
  
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  <script>
    const { createApp, ref } = Vue
    createApp({
      setup() {
        return {
          message: ref('Hello Vue 3!'),
          count: ref(0)
        }
      }
    }).mount('#app')
  </script>
</body>
</html>
▶ جرّب الكود

النتيجة: افتح ملف HTML؛ ستظهر الصفحة عبارة "Hello Vue 3!" وزرًا. عند النقر على الزر، يزداد الرقم بمقدار 1.

▶ مثال: يتم تشغيل "Hello World" بنجاح في غضون 5 دقائق

BASH
# 1. Create a Project(Use create-vue Official Scaffolding)
npm create vue@latest my-vue-app
# Select: TypeScript? No, JSX? No, Router? No, Pinia? No, Vitest? No, E2E? No
cd my-vue-app
npm install

# 2. Start the development server
npm run dev
# → Local: http://localhost:5173/

# 3. Open in a browser,See Vue Default Welcome Page

▶ مثال: مخطط تتبع التقدم (5 دقائق/30 دقيقة/ساعة واحدة)

المرحلة المدة معايير الإنجاز
تشغيل برنامج "Hello World" 5 دقائق شاهد الصفحة الافتراضية لـ Vue في متصفحك
تعديل سطر واحد من الكود 10 دقائق تغيير قيمة المتغير App.vue إلى message
إضافة نقطة بيانات واحدة متجاوبة 20 دقيقة إضافة المتغير ref + عرض القالب
إضافة تفاعل واحد 30 دقيقة إضافة حدث @click + عداد
النشر على Vercel ساعة واحدة عنوان URL عام متاح

▶ مثال: 5 أخطاء شائعة (تجنبها في 5 دقائق)

العقبات الأعراض الحلول
"Forget" .value count++ لا يعمل "ref" يتطلب count.value++ في JS
فك ضغط القالب تلقائيًا .value غير مطلوب في القالب {{ count }} كافٍ
فقدان استجابة الكائن obj.name = 'x' لا يستجيب لف بـ reactive()
التعيين المباشر للarray arr[0] = 'x' لا يستجيب استخدم splice أو push
فقدان البيانات غير المتزامن عدم استجابة تعيينات setTimeout تتم معالجتها داخليًّا بواسطة ref/reactive


❓ أسئلة شائعة

س أيهما يجب أن أختار، Vue 3 أم React؟
ج اختر الإطار الذي يمكنك الاستمرار في استخدامه حتى تتقنه. كلاهما قادر على إنجاز 95% من المهام. يتميز Vue بمنحنى تعلم أكثر سلاسة وبناء جمل قوالب أقرب إلى HTML؛ ويمكن للمبتدئين إتقان استخدامه في غضون أسبوعين. أما React فلديه نظام بيئي أوسع، لكنك ستحتاج إلى التعود على النموذج الذهني لـ JSX. من حيث فرص العمل، هناك طلب كبير على كليهما.
س هل يتعين عليّ تعلم لغة TypeScript لاستخدام Vue 3؟
ج لا، هذا ليس ضروريًا. يدعم Vue 3 لغة JavaScript العادية بشكل كامل. ومع ذلك، إذا كنت تخطط للعمل على مشاريع على مستوى المؤسسات، فإننا نوصي بشدة بتعلم لغة TypeScript — حيث يُعتبر استخدام TypeScript مع واجهة برمجة التطبيقات (API) الخاصة بالتركيب في Vue 3 من أفضل الممارسات، كما أن استنتاج الأنواع يمكن أن يقلل من الأخطاء بنسبة 50%.
س هل من الصعب تعلم واجهة برمجة تطبيقات التركيب (Composition API) في Vue 3؟
ج إنها أصعب قليلاً من واجهة برمجة تطبيقات الخيارات (Options API) (نظرًا لأنك تحتاج إلى فهم مفاهيم مثل «refs» و«reactivity»)، لكنها أكثر قوة بمجرد إتقانها. أوصي بالبدء بواجهة برمجة تطبيقات الخيارات (Options API) لإتقان الأساسيات، ثم الانتقال إلى واجهة برمجة تطبيقات التركيب (Composition API) للارتقاء بمهاراتك إلى المستوى التالي.
س هل يُعد Vue 3 مناسبًا لتطوير تطبيقات الجوال؟
ج يمكن استخدامه لتطوير تطبيقات H5 (باستخدام framework uni-app)، أما بالنسبة للتطبيقات الأصلية، فنحن ما زلنا نوصي باستخدام Flutter أو React Native. تكمن قوة Vue 3 في الويب (أجهزة سطح المكتب وH5)؛ أما الجوال فهو خيار ثانوي.
س هل سأتمكن من العثور على وظيفة في مجال Vue بعد إكمال هذا البرنامج التعليمي؟
ج نعم. يغطي هذا البرنامج التعليمي Vue 3 + Router + Pinia + Element Plus + Vite + TypeScript، وهي تقنيات تستوفي متطلبات 90% من فرص العمل المتاحة في مجال Vue. ويمكنك اكتساب الخبرة العملية المتبقية في المشاريع وحل مسائل الخوارزميات أثناء العمل.
س هل لا يزال من الممكن صيانة مشاريع Vue 2؟
ج يمكن صيانتها، لكنها لن تتلقى أي تحديثات بعد الآن. فقد وصلت Vue 2 إلى نهاية دورة حياتها (EOL) في ديسمبر 2023؛ وينبغي أن تستخدم جميع المشاريع الجديدة Vue 3. إذا كنت تقوم بصيانة مشروع قائم، فننصحك بالتخطيط للانتقال إلى Vue 3.
س ما هي الشركات المعروفة التي تستخدم Vue 3؟
ج GitLab، وNintendo، وAdobe Behance، وAlibaba (جزئيًا)، وXiaomi (جزئيًا)، وBMW، وNASA، وغيرها. وتستمر حصة Vue في السوق في النمو في الصين وجنوب شرق آسيا وأوروبا.

📖 ملخص


📝 تمارين

  1. أسئلة أساسية (مستوى الصعوبة: ⭐)

    تفضل بزيارة الوثائق الرسمية على vuejs.org، واذكر الميزات الأساسية الثلاث لـ Vue 3، وشرح كل ميزة في جملة واحدة.

  2. مسائل متقدمة (مستوى الصعوبة: ⭐⭐)

    قارن بين Vue 3 و React 18 في المجالات التالية (باستخدام جدول):

    الأبعاد العرض 3 React 18
    حجم الحزمة ؟ ؟
    منحنى التعلم ؟ ؟
    مكتبة إدارة الولاية ؟ ؟
    مكتبة التوجيه ؟ ؟
    حصة السوق المحلية ؟ ؟
  3. مسألة التحدي (مستوى الصعوبة: ⭐⭐⭐)

    ابحث عن ثلاثة مشاريع حقيقية من حولك (شركتك الخاصة، أو شركة أحد أصدقائك، أو مشروع مفتوح المصدر)، وقم بتدوين الملاحظات:

    1. ما هو إطار العمل الخاص بالواجهة الأمامية الذي استخدمته؟
    2. لماذا نختار هذا الإطار؟
    3. ما هي تكلفة الانتقال إلى Vue 3؟

    اكتب تقريرًا بحثيًا من 300 حرف وانشره في قسم التعليقات.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%