Communication between components (universal)

Vasyl Stokolosa
HackerNoon.com

--

Photo by Colwyn on Flickr

Communication is important, especially neighborhood communication ๐Ÿ˜Ž Letโ€™s collect communication approaches between components.

I remember a time when I jumped to Angular and while developing I had to find the best way to communicate between components. In Angular we may dispatch events ($emit, $broadcast), in React use Redux etc. Each framework has own approaches, but we may have general solutions no matter of framework, web components. So, letโ€™s collect them.

We are going to talk about neighborhood communication ๐Ÿ˜Ž

Custom Events

Custom Event is a good approach to dispatch events and listen. You should listen event from target Element, Document, and Window, but the target may be any object that supports events (such as XMLHttpRequest). It does not work in IE but for that we have a Polyfill solution.

So, Custom Event Service is going to look like that:

Communication phase:

Publish/Subscribe

The Publish/Subscribe pattern encourage us to think hard about the relationships between different parts of our application.

Publish/Subscribe pattern saves a TOPIC name and reference to a callback. When you publish the TOPIC it calls the callback.

๐Ÿ‘ฏ Difference between Custom Event and Pub/Sub

Callbacks are not subscribed to particular events. Every payload is dispatched to every registered callback.

Watching DOM tree

Another way to communicate is watching DOM changes. You may observe node element changes (attributes, childList, characterData) and when DOM changes occur observer will invoke a specified callback function.

๐Ÿ‘ Thank you for reading. Suggestions, comments, thoughts are welcome ๐Ÿ‘

If you like this, clap, follow me on medium, twitter, github share with your friends ๐Ÿ˜Ž

--

--

Vasyl Stokolosa
HackerNoon.com

๐Ÿ‡บ๐Ÿ‡ฆ Software Engineer. JavaScript enthusiast. Front End Architect.