React 19.3 rende le View Transitions stabili. Attiva i Trusted Types mentre ci sei.

React 19.3 è arrivato su npm il 9 settembre 2026. È una release minore senza breaking changes, quindi l'aggiornamento è noioso nel senso buono. Ciò che conta è ciò che è uscito dal cassetto sperimentale. View Transitions e Fragment Refs sono ora stabili, e due aggiunte minori, use(browser()) e il supporto ai Trusted Types, cambiano silenziosamente il modo di pensare al rendering e alla sicurezza.
Abbiamo letto le note di rilascio così puoi saltare il clamore e arrivare alle parti che toccano i progetti reali.
Cosa è stato rilasciato
Le View Transitions erano dietro un flag sperimentale per circa un anno e mezzo. Ora il componente <ViewTransition> è stabile. Anima gli elementi mentre entrano, escono, si spostano o cambiano dimensione, e si integra con la View Transition API del browser insieme a startTransition, Suspense e useDeferredValue. Un helper complementare, addTransitionType(), ti permette di variare l'animazione in base a ciò che ha causato la transizione, come «avanti» o «indietro» su un carosello.
Anche i Fragment Refs sono stabili. Puoi allegare un ref a un <Fragment> e ottenere un set limitato di metodi DOM per l'intero gruppo di figli: addEventListener, focus(), observeUsing() per IntersectionObserver, più alcuni helper per le misurazioni. Se hai mai renderizzato un elenco di elementi sibling e poi hai lottato con React per allegare un observer su tutti, questa è la soluzione.
Poi due cose che hanno ricevuto meno attenzione ma ne meritano di più.
use(browser()) è un nuovo opt-out dal rendering server. Chiamalo dentro un componente e React sospende quel componente sul server, mostra il fallback di Suspense nell'HTML iniziale, poi lo renderizza normalmente dopo l'hydration. È pensato per i componenti che genuinamente non possono girare sul server, come qualsiasi cosa che legga localStorage o il fuso orario dell'utente.
Il supporto ai Trusted Types è quello che ci interessa di più. React DOM prima convertiva ogni valore in stringa prima di passarlo al DOM. Ora passa TrustedHTML, TrustedScript e TrustedScriptURL senza modificarli, così puoi eseguire React sotto una Content Security Policy con require-trusted-types-for 'script' e ottenere protezione XSS basata sul DOM a livello di piattaforma.
La nostra opinione
Inizia dalla vittoria sulla sicurezza. Durante le attività di penetration testing troviamo ancora XSS basati sul DOM più spesso di quanto i team si aspettino, solitamente attraverso una chiamata dangerouslySetInnerHTML che si fida di dati che non dovrebbe. I Trusted Types spostano il controllo nel browser. Se un valore non è passato attraverso una policy Trusted Types, l'assegnazione lancia un'eccezione invece di eseguire. Questo è il tipo di difesa che regge anche quando uno sviluppatore sbaglia in seguito. Quando configuriamo Cloudflare e CSP per i clienti, questo è il controllo a strati che raccomandiamo, e ora React smette di ostacolarci.
Il problema è che i Trusted Types aiutano solo se li attivi. React 19.3 rende React compatibile. Non imposta l'intestazione CSP per te. Il nostro consiglio per questa settimana è concreto. Aggiungi require-trusted-types-for 'script' in modalità report-only, pubblicalo e osserva i rapporti di violazione per un paio di settimane prima di applicarli. Troverai i sink che hai dimenticato senza mandare in crash la produzione.
Fai attenzione con use(browser()). È un'API pulita, ma significa che il contenuto del componente è assente dall'HTML renderizzato lato server. Per un widget delle impostazioni, va bene. Per qualsiasi cosa che un motore di ricerca o uno scraper social debba vedere, quel contenuto è ora invisibile al primo rendering. Abbiamo visto team danneggiare il proprio SEO spostando troppo rendering sul client. Usalo per componenti foglia solo browser, non per contenuti che contano per i crawler.
I team mobile, aspettate un attimo. Le View Transitions funzionano solo nel DOM per ora. Il team React dice che il supporto per React Native è in corso, ma non è ancora disponibile. Nel nostro lavoro nativo su iOS e Android ci affidiamo alle API di transizione native della piattaforma, e per i progetti React Native aspetteremmo prima di progettare intorno a <ViewTransition> finché non arriva davvero per la piattaforma. Non costruire un layer di animazione condiviso su un'API che vive su un solo target.
Una cosa da fare adesso
Scegli la tua app React più piccola, aggiorna alla 19.3 su un branch e attiva i Trusted Types in modalità report-only. È un modo a basso rischio per vedere quanta manipolazione DOM non sicura si nasconde nel tuo codebase, e l'aggiornamento non ha breaking changes che ti rallentino. Se il report torna pulito, bene. Se non lo fa, hai appena trovato il backlog di sicurezza del prossimo sprint.
Se pubblicare velocemente senza lasciare buchi XSS suona familiare, parliamone. Lo facciamo per team web e mobile ogni settimana, da build cloud-native a security review.