React

Pricing table in 10 minuti: componente React o da zero?

Una pricing table non è una griglia di prezzi: è una decisione. Ecco quando installare un componente, quando scriverlo da zero e i tre stati che quasi tutte le tabelle dimenticano.

In sintesi

  • Prima definisci la decisione, poi disegni le colonne.
  • Il componente pronto va bene se copre piano gratuito, piano evidenziato e stati mobile.
  • Non dimenticare loading, errore e renewal: sono i punti in cui la pricing table perde soldi.

Una pricing table è una pagina di decisione. Il visitatore non sta leggendo un listino: sta cercando di capire quale piano è per lui, quanto rischia e cosa succede dopo. Se la tabella non risponde a queste tre domande, il numero di colonne non conta.

Puoi partire da un componente del catalogo o scriverla da zero. La scelta giusta dipende da quante variabili hai: piani, valute, tasse, trial, upgrade, downgrade, team seats.

Prima la decisione, poi la griglia

  • Qual è il piano che vuoi vendere? Evidenzialo, ma non nascondere gli altri.
  • Il prezzo è mensile, annuale o entrambi? Mostra il risparmio senza layout shift.
  • Cosa include il piano? Una riga per beneficio, non un muro di check.
  • Cosa succede dopo il clic? Trial, checkout, contatto: la CTA deve dirlo.
  • Chi paga? Un individuo, un team, un’azienda: la copy cambia.

Il componente pronto vs la tabella da zero

CasoComponente prontoDa zero
3 piani, una valutaSì, in 10 minutiSolo se hai un design molto specifico
Team seats e fatturazioneSì, se il componente gestisce quantitySpesso serve una API tua
Trial e upgrade in-appSì, se colleghi lo stato al backendSì, ma il costo è nel flusso, non nella tabella
Prezzi dinamici per paeseSì, se il prezzo arriva da serverSì, con più test

I tre stati che quasi tutti dimenticano

Loading: la tabella non deve saltare quando arrivano i prezzi. Errore: se il checkout non risponde, il pulsante deve dire cosa fare. Renewal: l’utente deve sapere quando verrà addebitato e come disdire. Una pricing table che ignora questi tre stati è un mockup.

Una base React leggibile

Se scegli il componente, apri la scheda e controlla che il piano evidenziato sia un dato, non un colore hard-coded. Se scegli da zero, tieni i piani in un array e rendering in una mappa: aggiungere un piano non deve significare copiare tre blocchi di JSX.

const plans = [
  { id: "free", name: "Free", price: 0, featured: false },
  { id: "pro", name: "Pro", price: 24, featured: true },
  { id: "team", name: "Team", price: 79, featured: false },
];

export function Pricing({ plans }) {
  return (
    
      {plans.map((plan) => (
        
          {plan.name}
          {plan.price} € / mese
        
      ))}
    
  );
}

Per i pattern completi, piano centrale, toggle mensile/annuale, FAQ e CTA finale, usa le guide Pricing table designs e Monthly/annual billing toggles.

Domande frequenti

Quanto tempo serve per una pricing table?

Con un componente pronto, 10–20 minuti. Da zero, mezza giornata se includi stati, mobile e collegamento al checkout.

Meglio tre o quattro piani?

Tre piani sono più facili da confrontare. Il quarto ha senso solo se aggiunge un segmento reale, non se serve a far sembrare il piano centrale più conveniente.

Dove metto il toggle mensile/annuale?

Sopra le colonne, con il risparmio visibile e senza cambiare l’altezza della tabella quando cambia il periodo.

Il prezzo deve arrivare dal server?

Sì, se cambia per paese, valuta o promozione. Non duplicare i prezzi nel client: il server è la fonte.

Posso usare un componente del catalogo in un progetto commerciale?

Controlla la licenza mostrata sul record. EneUI riporta la licenza dichiarata a monte; se non è chiara, chiedi prima di spedire.