AlpineJs permet de créer/gérer des composants falicement avec Javascript sans se lancer dans une SPA, très léger (<10ko gzippé et minifié) et n'utilise pas de DOM virtuel. Sa syntaxe est similaire à VueJS. C'est un bon outil pour remplacer jQuery et moins complexe que VueJs / React / Angular.
Présentation des principes d'AlpineJs : https://codewithhugo.com/alpine-tips/
x-component
est modifiable. Voir la PR/MR https://github.com/markmead/alpinejs-component/pull/28