# React 19: cosa cambia davvero

React 19 porta Actions, useActionState, useOptimistic, ref come prop e i metadata gestiti dal core. Cambia il data fetching, non il modo di scrivere i componenti.

> Pagina: https://ui.eneawork.it/blog/react-19-cosa-cambia
> Markdown: https://ui.eneawork.it/blog/react-19-cosa-cambia.md

*2026-11-01*

“React 19” sposta il data fetching dentro la libreria: Actions, useActionState, useOptimistic, ref come prop e i metadata gestiti dal core.

Il catalogo EneUI conta 111.985 componenti, 1.556 blocchi e 12.808 icone da 1.472 librerie, misurati da /api/stats il 1 novembre 2026. La cifra viene da una query all'endpoint, non da una stima: conta i record pubblicati, non la qualità dei componenti.

## Cosa entra nel core

## La tabella delle sostituzioni

## Come si aggiorna

npx codemod@latest react/19/migration-recipe npm install react@19 react-dom@19

Il codemod è distribuito con licenza MIT e riscrive i pattern più comuni, da forwardRef a ref come prop e dagli propTypes rimossi. Dopo l'esecuzione leggi il diff: il codemod non conosce il tuo dominio e può toccare codice che funzionava. React e React DOM devono avere la stessa versione, altrimenti l'installazione fallisce.

## Cosa si rompe

Alcune API sono state rimosse: propTypes e defaultProps sui componenti funzione, i ref sotto forma di stringa e ReactDOM.render. Gli errori lanciati durante il rendering non vengono più rilanciati: li intercetta il root. Le librerie che leggono queste API vanno aggiornate prima del deploy, non dopo.

## Un record vivo

Nel catalogo EneUI due componenti mostrano il codice aggiornato: dropdown-menu e sonner, entrambi React con licenza MIT e senza forwardRef. Per esplorare per categoria parti da 111.985 componenti.

## La limitazione

L'ecosistema non si aggiorna alla stessa velocità del core. Una libreria che dichiara React 18 nelle peer dependency può funzionare, ma il gestore di pacchetti segnala un conflitto e nessuno garantisce il comportamento. Serve un piano di ritorno: aggiorna in un branch, esegui i test e confronta i tempi di caricamento prima di unire.

## Dove continuare

Le librerie React misurate nel catalogo sono in librerie React 2026; le librerie di form compatibili sono in librerie form React; il confronto con Vue è in Vue 3 vs React.

## FAQ

### React 19 è una versione stabile?

Sì. React 19 è la release stabile pubblicata a dicembre 2024 e ha sostituito la 18 come versione corrente della documentazione.

### Devo riscrivere i componenti classe?

No. Le classi restano supportate e non c'è una data di rimozione. La migrazione a componenti funzione è una scelta di manutenzione, non un requisito della 19.

### Cosa sostituisce forwardRef?

Il passaggio di ref come prop normale. Il componente riceve ref fra le prop e la inoltra all'elemento. forwardRef continua a funzionare ed è deprecato solo per il codice nuovo.

### Quale versione di Next.js serve per React 19?

Next.js 15 e le versioni successive supportano React 19. Le versioni precedenti dichiarano React 18 e non vanno forzate: il framework e la libreria devono restare allineati.

### Posso aggiornare solo react-dom?

No. react e react-dom devono avere la stessa versione: il renderer e il core condividono strutture interne e una differenza di versione produce errori a runtime.
