Next.js aggiornamento: middleware, compilazione Rust e rendering ibrido

Next.js 12 introduce Middleware per la logica edge, il compilatore SWC in Rust sei volte più veloce di Babel e i React Server Components sperimentali. ISR matura come strategia di rendering.

Open SourceWeb Open SourceNext.jsReactSSRISRMiddlewareEdge

Un framework in continuo ridisegno dei confini

Next.js, il framework React sviluppato da Vercel, ha costruito la propria identità sulla capacità di spostare la logica di rendering tra client e server in base al contesto. Con la versione 12, rilasciata nell’ottobre 2021, il framework aggiunge un terzo livello — l’edge — e accelera la compilazione con un cambio di toolchain che segna una tendenza più ampia nel frontend JavaScript.

Middleware: logica all’edge

La novità architetturale principale è il Middleware: codice che viene eseguito prima che una richiesta raggiunga la pagina, direttamente sull’edge della rete di distribuzione. Il middleware può riscrivere URL, reindirizzare, aggiungere header, leggere cookie, implementare autenticazione o A/B testing — tutto con latenze dell’ordine dei millisecondi, senza che la richiesta debba raggiungere il server di origine.

Il middleware utilizza le Web API standardRequest, Response, fetch — ed è progettato per ambienti di esecuzione leggeri come le edge function dei provider cloud. Non ha accesso al file system né al runtime Node.js completo: un sottoinsieme limitato che favorisce l’esecuzione distribuita.

SWC: compilazione in Rust

Next.js 12 sostituisce Babel con SWC, un compilatore JavaScript/TypeScript scritto in Rust. Il risultato è una compilazione fino a sei volte più veloce nella trasformazione del codice e fino a diciassette volte più veloce nella minificazione rispetto a Terser. Per i progetti di grandi dimensioni, dove il tempo di build si misura in minuti, il guadagno è tangibile.

SWC non è un progetto interno di Vercel: è un compilatore open source indipendente creato da Donny (kdy1). La scelta di adottarlo conferma una tendenza in atto: strumenti di build JavaScript riscritti in linguaggi compilati — Rust o Go — per superare i limiti del runtime Node.js in fase di compilazione.

React Server Components (sperimentale)

Next.js 12 introduce il supporto sperimentale per i React Server Components (RSC), che permettono di eseguire componenti esclusivamente sul server. I componenti server non inviano JavaScript al browser: il loro output è HTML serializzato, con un bundle client più leggero e un rendering iniziale più veloce.

L’integrazione è sperimentale e richiede configurazione esplicita. La stabilizzazione avverrà nelle versioni successive, dove i Server Components diventeranno il modello predefinito.

ISR: rigenerazione incrementale matura

L’Incremental Static Regeneration (ISR), introdotta nelle versioni precedenti, matura in Next.js 12. ISR permette di rigenerare singole pagine statiche in background dopo la scadenza di un intervallo configurato, senza ricostruire l’intero sito. La pagina statica viene servita dalla cache mentre la nuova versione viene generata: l’utente non percepisce attesa.

Rendering come spettro

Con SSG, SSR, ISR, Middleware e React Server Components sperimentali, Next.js tratta il rendering non come una scelta binaria ma come uno spettro: ogni pagina può adottare la strategia più adatta. Il framework orchestra la complessità, lasciando allo sviluppatore la decisione su dove eseguire ogni parte dell’applicazione.

Link: nextjs.org

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi