Accueil🇫🇷Chercher

Composants web

La spécification des composants web (Web Components en anglais) est en cours de normalisation par le World Wide Web Consortium (W3C), l'organisme de normalisation du web.

Logo du World Wide Web Consortium
Logo du World Wide Web Consortium

Les composants web permettent aux développeurs de créer des balises HTML personnalisées et réutilisables.

"Les composants web permettent de combiner plusieurs éléments pour créer des composants d'interface graphique (widgets) réutilisables avec un niveau de richesse et d'interactivité sans commune mesure avec ce qui est aujourd'hui possible en se limitant aux CSS", explique le W3C.

Les composants web s'appuient sur plusieurs interfaces de programmation (API) du W3C :

  • templates : squelettes pour des Ă©lĂ©ments HTML instanciables
  • shadow DOM : ce qui sera public ou privĂ© dans les Ă©lĂ©ments
  • custom elements : pour crĂ©er et enregistrer de nouveaux Ă©lĂ©ments HTML et les faire reconnaĂ®tre par le navigateur
  • HTML imports : pour packager ses composants (CSS, JavaScript…)
  • model driven views : fournit un databinding semblable Ă  celui d'AngularJS
  • Web animations : des APIs pour mettre en Ĺ“uvre des animations complexes
  • pointer events : unifie les Ă©vĂ©nements souris, tactile et stylet

Polyfills

Plusieurs polyfills commencent à apparaître pour les composants web :

  • webcomponents.js
  • Polymer de Google, prĂ©sentĂ© lors d'un salon Google I/O, et basĂ© sur webcomponents.js
  • x-Tag, de la fondation Mozilla
  • Bosonic

Hello World

Voici un exemple d'application assez minimaliste (Hello World) utilisant un composant web (via le polyfill webcomponents.js) :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello world</title>
    <!-- Importing Web Component's Polyfill -->
    <script src="bower_components/webcomponentsjs/webcomponents.min.js"></script>
    <!-- Importing Custom Elements -->
    <link rel="import" href="src/hello-world.html">
</head>
<body>
    <!-- Using Custom Elements -->
    <hello-world who="World"></hello-world>
</body>
</html>

Voir aussi

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.