Sales2 min read408 words

Vue.js : الاتصال بين المكونات

Burak Kaşıkcı

PlusClouds Author

Cloud & SaaS

Vue.js: تواصل البيانات بين المكونات
Size

عند تطوير تطبيق باستخدام Vue.js، نقوم بفصل جميع الأجزاء كعناصر منفصلة ونبني هيكلًا يعتمد على ذلك. يوفر لنا هذا هيكلًا أكثر تنظيمًا، كما يمنعنا من إعادة كتابة نفس الشيفرة مرارًا وتكرارًا أو إجراء تعديلات في عشرات الأماكن عند إجراء تغيير ما.

بالطبع، ليس هذا خاصًا بـ Vue.js أو ما هو مقترح هنا فحسب، وهناك مبدأ عام يُعرف باسم DRY (لا تُكرر نفسك) يتعلق بهذا الموضوع. هذا المبدأ هو أحد المبادئ الأساسية في البرمجيات ويدعو إلى تجنب تكرار الشيفرة. (أطلق عليه اسم DRY في كتاب The Pragmatic Programmer وتم شرحه بشكل موسع.)

وفقًا لهذا المبدأ والفلسفة، نقوم بإنشاء عناصر في المشاريع التي نعمل عليها، ونعتمد على بيانات ديناميكية، وعلينا نقل هذه البيانات من العنصر الرئيسي إلى العناصر الفرعية (من الأب إلى الابن)، ومن العنصر الفرعي إلى العنصر الرئيسي (من الابن إلى الأب)، وبين العناصر الفرعية نفسها (من ابن إلى ابن). دعونا نلقي نظرة على كيفية إجراء هذه العمليات لنقل البيانات.

للتواصل بين الأب والابن: props


عند نقل البيانات من عنصر الأب إلى عنصر الابن، نستخدم هيكل الـ props. يمكننا استخدام البيانات التي أرسلناها باستخدام props في عنصر الابن كقيمة قمنا بتعريفها في البيانات.

عنصر الأب

 
// هنا نقوم بتعيين قيمة ثابتة للـ title.


// هنا نرسل قيمة الـ Title التي عرّفناها في عنصر الأب إلى القيمة التي عرّفناها في عنصر الابن.


يمكننا استخدامها على النحو التالي أثناء الاستقبال.

عنصر الابن


للتواصل بين الابن والأب باستخدام $emit


لقد قمنا بنقل البيانات من الأب إلى الابن عبر props، والآن نحتاج إلى إجراء عملية معاكسة وإرسال البيانات للأعلى. لهذا نستخدم هيكل emit. إذا أردنا إعطاء مثال مختصر، يمكننا استخدام this.$emit("result", item).

إذا تابعنا من المثال السابق، سنحصل على نتيجة مثل هذه؛

عنصر الابن


لالتقاط هذه الـ emits داخل الأب، نستخدم @emitAdı أو v-on:emitAdı.

عنصر الأب


للتواصل بين ابن وابن آخر باستخدام event-bus


هنا، نظرًا لعدم وجود علاقة مباشرة بين الأب والابن كما هو الحال بيناتهم، نحتاج إلى استخدام وسيط، وهنا نستخدم كائن eventbus. نقوم بإنشاء هذا الكائن ككائن Vue لا يرتبط بأي عنصر DOM، وسنستخدم هذا الكائن فقط عند نقل البيانات. يمكن لجميع العناصر إرسال أحداث هنا وجميع العناصر التي تستمع هنا ستتمكن من اتخاذ الإجراءات بناءً على البيانات الواردة.

أولاً، سنقوم بإضافة كائن eventBus كما حددنا في event-bus.js.

بعد ذلك، سيكون كافيًا استيراده في الصفحات التي سنستخدمه فيها. نظرًا لأننا سنستخدمها فقط بين عنصرين، لم نعرفها عالميًا.

في مثالنا الحالي، دعونا نحدث عنوان العنصر A من خلال الضغط على الزر الموجود في العنصر B.

عنصر الابن A

عنصر الابن B

باستخدام الطرق الثلاثة أعلاه، يمكننا إجراء نقل البيانات بين العناصر.

LeadOcean

Sales team chasing the wrong leads?

1.8B+ companies — search always free

Find My Leads →

No credit card · Cancel anytime

Frequently Asked Questions

كيف يتم نقل البيانات من عنصر الأب إلى عنصر الابن باستخدام props في Vue.js؟

نستخدم props لنقل البيانات من الأب إلى الابن. في المثال، يمكن إرسال قيمة ثابتة عبر عنوان title أو قيمة ديناميكية من الأب عبر :title="item.Title".

كيف يمكن استخدام القيمة المستلمة من props داخل عنصر الابن؟

يمكن استخدام البيانات المستلمة عبر props داخل الابن كقيمة عرفناها في بيانات الابن. بمجرد تعيينها في الأب، تصبح متاحة للاستخدام داخل مكوّن الابن.

كيف ترسل البيانات من الابن إلى الأب باستخدام $emit؟

لإرسال البيانات من الابن إلى الأب نستخدم هذا.$emit مع اسم الحدث مثل 'result' وقيمة البيانات مثل item. ثم يقوم الأب باستماع لهذا الحدث باستخدام رمز الاستماع @result أو v-on:result.

كيف يتم التقاط أحداث emit في الأب باستخدام تعليمة الاستماع؟

يتم التقاط هذه الأحداث في الأب باستخدام تعبير الاستماع مثل @emitAdı أو v-on:emitAdı. هذان النمطان يتيحان استقبال البيانات المرسلة من الابن.

ما هو دور event-bus في التواصل بين ابن وآخر غير مرتبطين مباشرة؟

يستخدم event-bus ككائن Vue غير مربوط بعنصر DOM ليكون وسيط نقل البيانات بين عناصر غير مرتبطة مباشرة. يمكن لجميع العناصر إرسال أحداث هنا والاستماع إليها لتنسيق البيانات، وتتم إضافته ككائن في ملف مستقل ثم استيراده حيث يلزم.

ما هي خطوات استخدام كائن eventBus لتبادل البيانات بين ابن وآخر؟

نبدأ بإنشاء كائن eventBus كما حُدد في ملف event-bus.js ومشاركته بين الصفحات التي تحتاجه. بعد ذلك نستورد الكائن في العنصرين المطلوبين وتستخدمه لإرسال واستماع الأحداث، مثل إرسال عنوان من الابن A وتلقيه في الابن B.

Related Reading

Posts tagged with:

The 48-Hour Activation Window: How to Turn a Buying Signal into a Booked Meeting Before Your Competitor Even Sees It
Sales

The 48-Hour Activation Window: How to Turn a Buying Signal into a Booked Meeting Before Your Competitor Even Sees It

B2B buying signals decay fast, and most sales teams lose the advantage by waiting days to act. This guide breaks down how to build a 48-hour activation workflow using LeadOcean and Eaglet to turn raw intent signals into personalised, booked meetings before competitors even open their CRM.

How to Build a First-Party Intent Stack That Feeds LeadOcean: From Website Visitor to Verified Decision-Maker in One Workflow
Sales

How to Build a First-Party Intent Stack That Feeds LeadOcean: From Website Visitor to Verified Decision-Maker in One Workflow

Most B2B demand-generation teams ignore the buying signals already embedded in their own website, content, and product analytics. This guide explains how to build a first-party intent stack that resolves anonymous visitor traffic into verified decision-maker contacts, applies composite intent scoring, and routes high-intent accounts into HubSpot or Salesforce automatically using LeadOcean and Eaglet by PlusClouds.

Signal-First Outbound: How to Build a Personalized-at-Scale Prospecting System That Gets 18 % Reply Rates
Sales

Signal-First Outbound: How to Build a Personalized-at-Scale Prospecting System That Gets 18 % Reply Rates

B2B inboxes in 2026 are overwhelmed with generic cold email, pushing market-wide reply rates below 2%. This guide explains how to build a signal-first, personalized-at-scale outbound system that consistently achieves 18% reply rates by triggering outreach on real buying events and using AI-powered enrichment tools like LeadOcean and Eaglet.

Dark Funnel Prospecting: How to Detect and Reach B2B Buyers Before They Ever Fill Out a Form
Sales

Dark Funnel Prospecting: How to Detect and Reach B2B Buyers Before They Ever Fill Out a Form

The dark funnel accounts for roughly 70% of the B2B buyer journey before any prospect fills out a form, meaning most pipeline opportunities are invisible to standard marketing automation. This guide explains how to detect reliable buying signals, avoid false-positive intent data, and build a workflow that gets your outreach in front of the right buyer at the right moment.