Introduzione
Wompo è una libreria leggera per creare Web Components reattivi, portabili, riutilizzabili e pronti per SSR e hydration a isole.
Cos'è Wompo
Wompo è una libreria JavaScript per costruire interfacce con Web Components reali usando un modello a funzioni e hook. Scrivi una funzione, ritorni un template html, registri il componente con defineWompo e lo usi come un tag HTML.
import { defineWompo, html, useState } from 'wompo';
function CounterButton() {
const [count, setCount] = useState(0);
return html`<button @click=${() => setCount(count + 1)}>Count: ${count}</button>`;
}
defineWompo(CounterButton);<counter-button></counter-button>Lo stesso modello, in piccolo, è quello che vedi qui sotto: un custom element reale che mantiene stato locale e reagisce al click.
Perché usarlo
- Portabilità: il risultato è un custom element nativo, quindi può vivere in HTML statico, app Wompo, React, Vue, Angular o JavaScript vanilla.
- API familiare: state, effect, memo, ref e context seguono un approccio simile a React.
- CSS modules integrati: puoi evitare collisioni di classi senza attivare Shadow DOM per forza.
- SSR e isole: puoi renderizzare lato server e idratare solo i componenti interattivi.
- Bundler opzionale: puoi installare da npm, usare import map, CDN o un file locale.
Web Components senza attrito
Un componente Wompo non è virtuale: quando lo ispezioni nel DOM trovi un elemento reale, per esempio <user-card> o <todo-list>. Questo rende i componenti condivisibili e integrabili, ma significa anche che il componente ha una propria presenza nel layout.
function App() {
return html`
<div class="row">
<span>Prima</span>
<${UserCard} user=${user} />
</div>
`;
}Il browser vedrà un elemento custom dentro .row, non solo i nodi figli del componente. Se ti serve un comportamento inline, dichiaralo nel CSS del componente.
UserCard.css = `
:host {
display: inline-flex;
}
`;Quando conviene
Wompo è utile quando vuoi componenti piccoli, riusabili e facili da distribuire tra progetti diversi. Funziona bene per design system, widget embeddabili, interfacce progressive su siti esistenti e applicazioni che vogliono SSR senza idratare tutto il documento.
Se conosci già React, la curva di apprendimento è breve. La differenza da ricordare è che stai pubblicando veri elementi HTML personalizzati.
Wompo - Installazione
Scopri come installare Wompo in una applicazione web moderna, con o senza bundler.