React 16, ultima major release di una delle più note librerie JavaScript per la creazione di interfacce utente, è ora disponibile in versione definitiva. L'aggiornamento presenta diverse novità dal punto di vista delle funzionalità, feature che riguardano la gestione di errori ed eccezioni, i tipi di ritorno, la gestione del DOM, la dimensione dei file, il rendering server side e la licenza associata al progetto.
Per quanto riguarda l'error handling vengono introdotti gli error boundaries, dei componenti in grado di catturare gli errori all'interno della loro posizione nel sub-tree. Viene così risolto un problema che nelle precedenti versioni di React produceva un malfunzionamento a carico dell'intera libreria quando si verificavano errori durante il rendering a runtime; ciò avveniva per evitare che in fase di esecuzione venissero mostrati dei dati corrotti, ma non avendo a disposizione uno strumento che isolasse gli effetti degli errori il ricorso ad un refresh di pagina era praticamente necessario.
E' ora possibile restituire un array di elementi da un componente del metodo render, allo sviluppatore viene naturalmente richiesto di associare una chiave ad ogni elemento per evitare notifiche di errore; nei prossimi aggiornamenti dovrebbe essere un'apposita sintassi per rendere l'indicazione delle chiavi non necessaria. Contestualmente è stato integrato il supporto per la restituzione delle stringhe.
Da segnalare anche l'implementazione dei Portals, concepiti per il rendering degli elementi children in un nodo del DOM al di fuori della gerarchia DOM del componente parent. Nello stesso modo merita una segnalazione la completa riscrittura del server renderer; reso più performante esso supporta lo streaming, permettendo di veicolare dati più velocemente verso il client.
Tornando alla gestione del DOM, React 16 supporta ora gli attributi personalizzati, questo vuol dire che gli attributi HTML ed SVG non riconosciuti non verranno ignorati ma passati all'interno del DOM; ciò consentirà di ampliare la lista degli attributi utilizzabili e avrà un effetto positivo per la dimensione dei file. A proposito di quest'ultima, la libreria è oggi il 32% più leggera, un miglioramento dovuto in particolare agli interventi apportati a livello di packaging.
La novità più attesa di React 16 non riguarda però le sue specifiche tecniche, ma la licenza associata. Questa torna ad essere la MIT che sostituisce quella Facebook Combo, in parte libera e in parte proprietaria, grazie alla quale Menlo Park avrebbe potuto rivendicare dei diritti sul codice delle applicazioni prodotte utilizzando la libreria. La precedente licenza "ibrida" aveva convinto progetti anche molto popolari, come WordPress, a puntare su framework alternativi.
Via React Blog