Con Inertia puoi costruire applicazioni proprio come hai sempre fatto con il tuo framework server-side preferito. Puoi usare le funzionalità esistenti del tuo framework per il routing, i controller, i middleware, l'autenticazione, l'autorizzazione, il recupero dei dati e altro ancora.
Tuttavia, Inertia sostituisce il livello di view della tua applicazione. Invece di utilizzare il rendering lato server tramite template PHP o Ruby, le view restituite dalla tua applicazione sono componenti JavaScript. Questo ti permette di costruire tutto il tuo frontend utilizzando React, Vue o Svelte, pur mantenendo la produttività di Laravel o del tuo framework server-side preferito.
Come puoi immaginare, creare semplicemente il tuo frontend in JavaScript non ti dà un'esperienza di applicazione single page. Se cliccassi su un link, il tuo browser farebbe una visita completa alla pagina, il che causerebbe il riavvio del tuo framework lato client al caricamento della pagina successiva. Questo è il punto in cui Inertia cambia tutto.
Nel suo nucleo, Inertia è essenzialmente una libreria di routing lato client. Ti permette di fare visite alle pagine senza forzare un ricaricamento completo della pagina. Questo viene fatto utilizzando il componente , un wrapper leggero intorno a un normale anchor link. Quando clicchi su un link di Inertia, Inertia intercetta il clic e effettua la visita tramite XHR. Puoi anche fare queste visite in modo programmatico in JavaScript usando router.visit().
Quando Inertia fa una visita XHR, il server rileva che si tratta di una visita Inertia e, invece di restituire una risposta HTML completa, restituisce una risposta JSON con il nome del componente di pagina JavaScript e i dati (props). Inertia poi scambia dinamicamente il precedente componente di pagina con il nuovo componente di pagina e aggiorna lo stato della cronologia del browser.