Composants

Le concept

L'un des principaux concepts d'Angular est de voir une application comme une arborescence de composants.
A Component controls a patch of screen real estate that we could call a view, and declares reusable UI building blocks for an application.

Custom Elements

C'est d'ailleurs un concept que l'on retrouve dans tous les frameworks modernes et même nativement avec les Custom Elements : https://developers.google.com/web/fundamentals/web-components/customelements
Exemple à essayer dans la console de votre navigateur :
1
/* The custom element definition. */
2
class HelloElement extends HTMLElement {
3
connectedCallback() {
4
this.textContent = 'Hello 🌍';
5
}
6
}
7
8
/* Registering the custom element. */
9
customElements.define('wt-hello', HelloElement);
10
11
/* Injecting the element using innerHTML... */
12
document.body.innerHTML = '<wt-hello></wt-hello>';
13
14
/* ... or using appendChild & createElement. */
15
document.body.appendChild(document.createElement('wt-hello'));
Copied!

Custom Elements & Web Components Tooling

Stencil
stenciljs
GitHub - lit/lit-element: LEGACY REPO. This repository is for maintenance of the legacy LitElement library. The LitElement base class is now part of the Lit library, which is developed in the lit monorepo.
GitHub

Separation of Concerns

Les composants permettent une meilleure décomposition de l'application, facilitent le refactoring et le testing.

Isolement

Chaque composant est isolé des autres composants. Il n'hérite pas implicitement des attributs des composants parents.
Dernière mise à jour 1yr ago