Il maggior livello d'integrazione con TypeScript è stato possibile anche grazie alla collaborazione del team che si occupa di quest'ultimo. A livello pratico VueJS 2.5 mette a disposizione notevoli miglioramenti per quanto riguarda la dichiarazione dei tipi, permettendo di operare con l'API della libreria senza la necessità di ricorrere ai componenti dei decorator per la definizione delle interfacce.

Si tratta di un upgrade i cui benefici risulteranno evidenti anche nello sviluppo di applicazioni basate sul JavaScript puro, la nuova metodologia per la dichiarazione dei tipi è infatti prevista da estensioni come Vetur, uno dei più noti tool per il coding con VueJS e Visual Studio Code, abilitando un supporto più avanzato per Intellisense, la tecnologia per il completamento automatico dei costrutti sintattici in dotazione sull'IDE di Microsoft.

VueJS 2.5 presenta inoltre una novità importante per quanto riguarda l'Error Handling. L'esigenza era quella di superare alcune lacune presenti nella versione precedente, dove di fatto mancava un meccanismo dedicato alla gestione degli errori generici all'interno di parti specifiche di un'applicazione. Per superare questo limite è stato introdotto l'hook errorCaptured, associando un componente a quest'ultimo sarà possibile intercettare qualsiasi tipo di errore, esclusi quelli generati dalle chiamate asincrone.
Tale impostazione risulterà particolarmente intuitiva per chi già utilizza una soluzione come React, il suo funzionamento ricorda infatti gli Error Boundaries di React 16.

Da segnalare anche il miglior supporto per i componenti funzionali negli SFC (Single File Components), con importanti vantaggi per l'ottimizzazione, nonché l'implementazione di vue-server-renderer, il package che mette a disposizione il rendering server-side di NodeJS per VueJS, che è ora agnostico rispetto all'ambiente di riferimento divenendo indipendente dall'engine JavaScript utilizzato.

Via VueJS 2.5 Release Notes

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *