Web Components
Frontend
JavaScript
Componentes
Custom Elements
Shadow DOM

Composants Web : composants réutilisables pour le Web

Les composants Web sont des modèles natifs du navigateur permettant de créer des composants réutilisables. Ils fonctionnent sur n’importe quel framework ou sans framework. Ce guide présente les technologies et comment les utiliser.

Que sont les composants Web

Définition

Ensemble de normes pour les composants encapsulés.

Technologies

Éléments personnalisés, Shadow DOM, modèles HTML.

Natif

Pris en charge directement par les navigateurs.

Indépendant du framework

Fonctionne avec React, Vue, Angular ou pure.

Pourquoi les composants Web

Réutilisation

Un composant, n’importe quel projet.

Encapsulation

Les styles ne fuient pas.

Modèles

Cela ne dépend pas de la bibliothèque.

Longévité

Les navigateurs le prennent en charge et ne le déprécient pas.

Éléments personnalisés

Qu'est-ce que c'est

Définit de nouveaux éléments HTML.

Syntaxe

la classe MyElement étend HTMLElement { } customElements.define('mon-élément', MyElement);

###Cycle de vie

connectedCallback,connectedCallback,attributChangedCallback.

Utilisation

<mon-élément></mon-élément>

DOM fantôme

Qu'est-ce que c'est

DOM encapsulé à l’intérieur de l’élément.

Encapsulation

CSS ne s'échappe pas et n'entre pas de l'extérieur.

Création

this.attachShadow({ mode : 'ouvrir' });

Machines à sous

pour la projection de contenu.

Modèles HTML

Qu'est-ce que c'est

Fragments HTML qui ne sont rendus qu'après avoir été clonés.

Syntaxe

Utilisation

Clonez et ajoutez au DOM.

Performances

Ne restitue que lorsque cela est nécessaire.

Rappels du cycle de vie

connectéRappel

Une fois ajouté au DOM.

déconnectéRappel

Une fois supprimé du DOM.

attributChangedCallback

Lorsque l'attribut change.

adoptéRappel

Lorsqu'il est déplacé vers un nouveau document.

Attributs et propriétés

Attributs

Chaînes en HTML.

Propriétés

Valeurs JavaScript dans l'objet.

Synchronisation

Réfléchissez entre les deux.

Attributs observés

static get observéAttributes() { return ['value']; }

Machines à sous

Emplacement par défaut

reçoit tout le contenu.

Emplacements nommés

Utilisation

<mon-élément>...</mon-élément>

Repli

Le contenu à l’intérieur de l’emplacement est une solution de secours.

Style

Styles DOM fantômes

Styles dans la racine fantôme.

:hôte

Stylise l’élément hôte.

::fendu

Styles de contenu à emplacements.

### Parties CSS

::part() pour la personnalisation externe.

Variables CSS

Ils traversent la limite de l'ombre.

Avec les frameworks

###Réagir

Peut être utilisé avec un emballage.

Vue

Prise en charge native des éléments personnalisés.

Angulaire

CUSTOM_ELEMENTS_SCHEMA.

###Allumé

Bibliothèque pour faciliter la création.

Élément allumé

Qu'est-ce que c'est

Bibliothèque Google pour les composants Web.

Avantages

Moins de propriétés passe-partout et réactives.

Modèles

Littéraux de modèle balisés.

Adoption

Populaire pour les Composants Web.

Pochoir

Qu'est-ce que c'est

Compilateur pour Composants Web.

###JSX

Syntaxe familière pour les développeurs React.

### Script dactylographié

Prise en charge native.

Chargement paresseux

Optimisation automatique.

Prise en charge du navigateur

Moderne

Tous les navigateurs modernes le prennent en charge.

Polyremplissages

Pour les anciens navigateurs.

Vérification

https://caniuse.com/custom-elementsv1

Tests

Tests unitaires

Blague, Moka avec DOM.

Exécuteur de tests Web

Tests modernes pour les composants Web.

WC ouverts

Outils de test.

##Performances

Coût initial

Frais généraux du Shadow DOM.

Mise à l'échelle

De nombreux composants sont efficaces.

Lot

Chargement des composants à la demande.

Erreurs courantes

OubliezSuper

super() dans le constructeur.

Attribut vs Propriété

Confondre les deux.

Constructeur lourd

Beaucoup de travail chez le constructeur.

### Fuite de style

Sans utiliser Shadow DOM.

Cas d'utilisation

Systèmes de conception

Composants partagés.

Microfrontends

Intégration de parties indépendantes.

Widgets tiers

Intégrez-le sur n’importe quel site Web.

Intégration héritée

Moderniser progressivement.

Conclusion

Les composants Web sont des standards puissants pour des composants véritablement réutilisables. Ils fonctionnent aujourd'hui dans tous les navigateurs modernes et complètent n'importe quelle pile.

##FAQ

1) Les composants Web remplacent React ? Pas nécessairement. Ils peuvent coexister.

2) Ai-je besoin d'un Lit ou d'un Pochoir ? Ils aident, mais la vanille pure fonctionne.

3) Le référencement fonctionne-t-il avec Shadow DOM ? Google restitue JavaScript. Cela fonctionne généralement.

4) Les performances sont-elles bonnes ? Oui. Les navigateurs ont été optimisés.

5) Quand utiliser les Composants Web ? Composants partagés entre projets/frameworks.

A lire aussi