If you have ever heard of the web and the components that make up the web, the elements that are going to bring about the change in the web technologies they are the ‘WEB COMPONENTS'. Web components are a combination of several connected technologies that make the elements reusable across the web.Until now the web was revolving around Shadow DOM but now the there is transformation to the whole new concept called ‘Custom Elements’ wherein a user can create, define his own elements and its properties as well as behavior.
What is this Custom Element all about?
of the existing HTML tags such as <img>,<pre>,<video> <select> ,HTML5 gives us an opportunity to create our own tags and just use them as any other tag in the web application and get the result we desire.
Then how to create these Custom Elements ?
When creating the custom elements we should make sure that we are not clashing with the existing or future HTML elements.
Then what is the solution?
Just define your custom element and put a hyphen somewhere in the name.
Example: <-app> ........... </-app>
And now the DOM recognizes the newly defined custom element.
Custom elements are basically classified into two interfaces –
The former elements are those that are not registered and not recognized by the DOM
The latter elements are those that are registered and recognized by the DOM.
It is possible to add our own properties and methods to a . It means that every custom tag can have its own API.
To start up with this we need to initially define a new prototype and then add the properties and methods to it.
Let us start up with an example by creating a new method called as
console.log(‘my first custom element’);
This method logs a message to the console.
In the next step we need to register the element, stating that it should use our newly defined prototype
Once this is done, you can query your element in the DOM and call the method.
Extending Existing elements to be used in this API:
A user can use the existing HTML elements and use it in this API.Like if I want to extend the <img> element, I can do it in this way-
The extends argument states that the custom element intends to use the img element
Now DOM has to be informed that the img element wants to be extended, using the is attribute
Now this img element can have its own API.
Some more specialities of Custom Elements:
A set of callback events are fired throughout the life cycle of custom elements such as
- createdCallback: It is fired when an element is created
- attachedCallback: It is fired when an element is attached to the DOM
- detachedCallback: It is fired when an element is detached from the DOM
- attributeChangedCallback: It is fired when an element is changed
To run an anonymous function each time a new instance of custom tag is created in a page
Do custom elements work with other Web Components?
Custom elements have been completely designed to be interoperable with other features of the web components suite.
For example one can include : template element such as
One can be ensured that the entire internal code is hidden by using shadow DOM and sharing across multiple websites is possible using HTML imports statement
Which browsers support these custom elements:
The chrome (version 33+) and Opera have made its way in displaying the custom elements in more efficient way.
Here in this article we have seen how our own custom elements can be created and then used on the web just like any other HTML elements.This custom elements carves a niche for itself for future
Web applications.With the use of shadow DOM and HTML it is going to make it’s way through the development of the front-end web development application in a great way.
So guys! Get yourself started to use them in your web applications and bring in a revolution in web development .