Depuis bientôt une décenie, on entends parler des Web Components, et de leur belle promesse d’un développement web basé enfin sur une vraie architecture en composants, de la réutilisation, de la modularisation, de l’encapsulation…
Mais force est de constater que aujourd’hui, en 2023, cette promesse n'est toujours pas accomplie. Les frameworks comme React, Angular ou Vue ont encore la part belle des feux des projecteurs et le discours des Web Components sont presque inaudibles. Et pourtant les Web Components sont aujourd’hui sur plein de sites et des applications que nous utilisons tous les jours, sans qu’on les remarque. La révolution est bien en marche, mais elle est plutôt silencieuse…
En Riviera Dev 2019 j'ai fait fait un atélier Web Components en 2019, on en est où?, où on faisait un tour de table sur les différentes bibliothèques de web components disponibles aujourd’hui, leurs caractéristiques, leur philosophie et leurs use cases, et comment il était simple d’intégrer les web components sur n’importe quel project web, du legacy avec jQuery à la dernière app avec React, du projet en Angular à l’application en Vue JS.
Aujourd'hui, 4 ans aprés, une nouvelle version de l'atélier s'impose. Mous plongerons dans l'évolution actuelle des Web Components, en explorant en détail les principales bibliothèques (Lit, Stencil, Hybrid…), et les catalogues de composant disponibles en open source (Material, Lion, OpenUI5, Wired…)
Nous examinerons en profondeur comment différents frameworks tels que Svelte, Vue et Angular ont intégré et géré les Web Components, mettant en lumière les pratiques innovantes et les approches évolutives. La session visera à fournir une vue d'ensemble cohérente des stratégies pour créer des composants web réutilisables et indépendants du framework.
Nous aborderons également les défis courants auxquels sont confrontés les développeurs, tels que les problèmes de compatibilité et la gestion du Server Side Rendering (SSR). Nous analyserons les meilleures pratiques et les solutions pour surmonter ces problèmes.