Passare da Laravel Blade a React: i concetti che hanno richiesto un cambio di prospettiva
Arrivando da Laravel, ero abituato a far fare tutto il lavoro al server. Blade elabora il codice PHP, restituisce l'HTML e l'interattività nel browser si gestisce con jQuery o JavaScript puro. Passare a React e Next.js ha richiesto di ripensare il modo di progettare le interfacce utente.
01. Ragionare per componenti invece che per template interi
In Blade si ragiona spesso per pagine e partial: si include la navbar, si cicla sui dati e per le modifiche dinamiche si fa una chiamata AJAX aggiornando il DOM.
In React l'interfaccia è una conseguenza diretta dello stato. Quando lo stato cambia, React si occupa di aggiornare il DOM. Abituarsi a non manipolare direttamente gli elementi ma a gestire il flusso dei dati è stato il cambiamento principale.
- Le props scendono verso il basso, gli eventi risalgono
- Mantenere lo stato vicino a dove viene effettivamente utilizzato
- Calcolare i valori derivati durante il render invece di creare stati duplicati
- Suddividere le schermate grandi in componenti piccoli e focalizzati
02. Gestione di form e input utente
In Laravel la gestione dei form è lineare: submit POST, validazione con Form Request e redirect con messaggi flash. In React, gestire gli input controllati sembrava più verboso all'inizio, finché non ho iniziato a strutturare bene gli hook.
Con l'App Router e le Server Actions di Next.js, il collegamento tra validazione server e interfaccia client torna a essere fluido e molto vicino alla comodità di Laravel, offrendo al contempo feedback immediato all'utente.
03. Server Components e Client Components
L'App Router di Next.js mi ha fatto apprezzare molto React perché i Server Components ricordano molto Blade: vengono eseguiti sul server, possono accedere direttamente ai dati senza esporre credenziali e non appesantiscono il bundle JavaScript nel browser. Uso `'use client'` solo dove serve reale interattività, come nei modali o nei filtri.
Per me React non sostituisce backend solidi come Laravel, ma li completa. Quando si comprende il ciclo di rendering e la gestione dello stato, sviluppare dashboard interattive e moderne diventa molto più naturale.