Vue JS

A comprehensive guide to Component Communication in Vue.js

Vue.js enables you to construct single-page applications. But what exactly is a single-page application? Unknowingly, we are all frequent users of single-page applications. A single-page application is one that runs within a browser and does not require page reloading while in use.

In modern JS frameworks, the entire page is divided into multiple components to increase the application’s performance, structure, and reusability.
Each component has its own UI & Design structure, as well as its own set of functionality. The component-based architecture allows us to easily maintain and develop the software.

According to the VueJS official document, “The components are an abstraction that lets us build large-scale applications composed of small, self-contained and often reusable components”.

A simple admin panel dashboard, for example, can be divided into four components: the header, footer, sidebar, and main section, as illustrated in the diagram below.

Also Read: [Revolutionize Your Business With Vue JS]

★ However, when it comes to Vue JS Development, we frequently encounter scenarios in which we must move data from one component to another. There are three primary methods by which a component transmits data to another component, namely,

Parent to Child

Child to Parent

From any component to any other component

 

To begin with, when a component is defined within another component, the declared component is a child component, and the component within which the child component is called is a parent component.

For example, With reference to the diagram 1.1, The Parent component is the dashboard component and the child components are, Sidebar, Header, Footer and Main section components

Parent to child communication

In parent to child component communication, parent component passes data to child component by adding the argument in the component declaration i.e., props which can be defined as properties.

 

As per the preceding screenshots, the Child component is called by the Parent component, and the Parent component sends a message to the Child component by adding arguments to the declaration, and the Child expects this argument as props (properties). In the child component, you must specify the exact data type of the anticipated props.

Child to parent communication

In child to parent component communication, the child component passes data to the parent component with the use of events i.e., $emit which is also known as events emitting.

As per the preceding screenshots, the Child component is called by the Parent component, and the Child component sends a message to the Parent component by emitting events.

 

From any component to any other component using Event Bus

This method of component communication is not restricted to parent-child components; it can communicate with any components regardless of their relationship using Event Bus.

In the above screenshot, we have dispatched an event from the Demo component to any other component that is in no way related to the Demo component.

The provided arguments are optional, and you can pass as many as you want. I’ve passed two arguments to other components in this case.

The screenshot above shows the Test component, which listens for events fired by the Demo component. By using $root.$on, we can listen in on the event.

In the Test component, we can access all of the arguments passed by the Demo component.

Conclusion

And that covers it up: three different methods to component communication with and without a parent-child relationship. Alternatively, we can utilize vuex as part of state management in vue.js, which is a bit more complicated than the previous methods. However, before executing any code, keep your application’s structure and requirements in mind.

Related Blogs

Selecting the Best Adobe Experience Manager Solution for Your Needs

Selecting the Best Adobe Experience Manager Solution for Your Needs

Creating and managing engaging content across various platforms is important for eCommerce stores in this ever-evolving digital commerce era. Th...

How Adobe Commerce Development Partner Boosts Your eCommerce Success?

How Adobe Commerce Development Partner Boosts Your eCommerce Success?

Modern retail owners have turned to accredited eCommerce development companies as their technical consulting and implementation partners. By han...

What Are the Top Security Threats to Adobe Commerce Stores?

What Are the Top Security Threats to Adobe Commerce Stores?

Most businesses are looking to expand their presence in the online marketplace and that’s led to the growth of eCommerce platforms like Adobe ...