Components are the basic elements of any webpage, they allow you to follow the DRY principle when building your project, and they have the possibility to:

- Have multiple versions
- Have have data inputs as stories
- Propagate data to children elements inside the page
- Call external CDN esm based library or js file
- Be displayed across pages
- Be updated instantly inside all pages
- Be attached to custom events and change properties
- Be shared between projects
- Get cloned from the marketplace
- Get indexed and cached for optimal performance
- Include other child components
- Get imported into any other component with a single click
- Fetch data from any REST API using the "fetch" method

In this section we will discover how to create and use custom data to change the behavior and display data.

Learn more about components in the user guide if you didn't already