Sales2 min read490 words

Vue.js: Communicatie tussen componenten

Burak Kaşıkcı

PlusClouds Author

Cloud & SaaS

Vue.js: Communicatie Tussen Componenten
Size

Wanneer we een applicatie ontwikkelen met Vue.js, splitsen we alle onderdelen in aparte componenten en bouwen we hierop voort. Dit biedt ons niet alleen een georganiseerde structuur, maar voorkomt ook dat we dezelfde code herhaaldelijk schrijven of op tientallen plaatsen dezelfde wijzigingen moeten aanbrengen.

Dit is natuurlijk niet alleen specifiek voor Vue.js of iets dat hier wordt voorgesteld, en er is een algemeen softwareprincipe dat bekendstaat als DRY (Don’t Repeat Yourself) dat hiermee verband houdt. Dit principe is een van de fundamenten van softwareontwikkeling en pleit ervoor om code-repetities te vermijden. (In het boek The Pragmatic Programmer wordt dit als DRY aangeduid en uitgebreid uitgelegd.)

Wij volgen ook dit principe en de logica door componenten te creëren in onze projecten, waarin we dynamische gegevens hebben en deze moeten overdragen van de hoofdcomponent naar subcomponenten (van ouder naar kind), van subcomponenten naar de hoofdcomponent (van kind naar ouder) en tussen subcomponenten (van kind naar kind). Laten we kijken hoe we deze gegevensoverdracht kunnen uitvoeren.

Communicatie tussen Parent - Child met :props


Bij het overdragen van gegevens van de oudercomponent naar de kindcomponent gebruiken we de props-structuur. Met props kunnen we de gegevens die we verzenden als een waarde gebruiken, net zoals we dat in de data van de kindcomponent hebben gedefinieerd.

Ouder Component

 
//Hier wijzen we een statische waarde toe aan de titel.


//Hier sturen we de waarde van de titel die we in de kindcomponent hebben gedefinieerd door naar de waarde Title die we in de oudercomponent hebben gedefinieerd.


Dit kunnen we als volgt gebruiken.

Kind Component


Communicatie tussen Child - Parent met $emit


We hebben gegevens van de ouder naar de kindcomponent overgedragen met props, en nu moeten we de inverse uitvoeren en de gegevens naar boven versturen. Hiervoor gebruiken we de emit-structuur. Een korte voorbeeld zou zijn: this.$emit("result", item).

Als we het bovenstaande voorbeeld voortzetten, zouden we het volgende resultaat hebben;

Kind Component


Om deze emit-taken in de oudercomponent op te vangen, gebruiken we @emitNaam of v-on:emitNaam.

Ouder Component


Communicatie tussen Child - Child met event-bus


Aangezien we hier geen directe relatie hebben zoals tussen parent en child, moeten we een tussenpersoon gebruiken en we maken gebruik van een eventbus-object. We creëren dit object als een Vue-object dat niet aan een DOM-element is gebonden en we gebruiken dit alleen voor het verzenden van gegevens. Alle componenten kunnen hier evenementen naartoe versturen en alle componenten die deze volgen, kunnen acties ondernemen op basis van de ontvangen gegevens.

Eerst voegen we in het event-bus.js-bestand het eventBus-object toe zoals we hebben aangegeven.

Vervolgens is het voldoende om dit te importeren in de pagina's waar we het willen gebruiken. Omdat we dit alleen tussen twee componenten gebruiken, hebben we het niet globaal gedefinieerd.

In ons huidige voorbeeld gaan we de titel in component A bijwerken door op de knop in component B te drukken.

Kind A Component

Kind B Component

Met deze drie bovenstaande methoden kunnen we gegevensoverdracht tussen componenten uitvoeren.

LeadOcean

Sales team chasing the wrong leads?

1.8B+ companies — search always free

Find My Leads →

No credit card · Cancel anytime

Frequently Asked Questions

Hoe werkt dataoverdracht van ouder naar kind in Vue.js met props?

Data wordt van de ouder naar het kind gestuurd met props. De ouder geeft een waarde mee als prop, en de kindcomponent kan die waarde gebruiken als onderdeel van zijn eigen data, waarbij de waarde statisch kan zijn of dynamisch via binding.

Wat is het verschil tussen statische en dynamische props in een ouder-naar-kind communicatie en hoe ziet dat eruit in code?

Een statische prop krijgt een vaste waarde, terwijl een dynamische prop wordt gebonden aan een data-eigenschap uit de ouder, bijvoorbeeld item.Title. De dynamische prop wordt doorgegeven via binding zodat de titel mee verandert als de data wijzigt.

Hoe kun je vanuit een kindcomponent data terugsturen naar de oudercomponent met $emit?

Om data terug te sturen gebruik je this.$emit met een eventnaam en payload, bijvoorbeeld this.$emit('result', item). De ouder luistert naar dat event zodat hij de ontvangen payload kan verwerken.

Hoe vang je het emit-event op in de oudercomponent in Vue.js?

Je plaatst een event listener op de kindcomponent, bijvoorbeeld via een binding zoals @result of v-on:result, en koppelt dit aan een handler die de payload afhandelt.

Wat is een event-bus en hoe helpt het bij communicatie tussen sibling componenten in Vue.js?

Een event-bus is een Vue-object dat niet aan een DOM-element is gebonden. Alle componenten kunnen evenementen naar de bus sturen en daarop reageren, waardoor zustercomponenten met elkaar kunnen communiceren.

Waarom is DRY belangrijk voor componentcommunicatie in Vue.js?

DRY staat voor Don't Repeat Yourself en helpt herhaling te voorkomen door logica tussen componenten te delen. Door duidelijke dataoverdracht en gebeurtenissen blijft de code onderhoudbaar en consistent.

Welke drie methoden voor communicatie tussen Vue-componenten worden in dit voorbeeld genoemd?

De drie methoden zijn ouder naar kind via props, kind naar ouder via $emit, en communicatie tussen zustercomponenten via een event-bus.

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.