Vue 3.4, nome in codice "🏀 Slam Dunk", è l'ultima versione di uno dei framevork JavaScript più utilizzati per la creazione di interfacce Web ed SPA (Single Page Application). Questa release è stata rilasciata ufficialmente nelle ultime ore del 2023 e mostra innanzitutto gli effetti di un lavoro dedicato all'ottimizzazione delle performance. A questo proposito è possibile citare la riscrittura del template parser, diventato 2 volte più veloce rispetto alla generazione precedente.
Reactivity System
Sempre per quanto riguarda le prestazioni, Vue 3.4 presenta un refactoring del reactivity system (e quindi delle Reactivity API) che lo rende più efficiente. L'obbiettivo degli sviluppatori era quello di migliorare a livello di core la rielaborazione delle proprietà già elaborate. Gli effetti saranno visibili soprattutto nel caso della restituzione dei risultati. Se questi non dovessero subire dei cambiamenti non verrà effettuato un nuovo callback.
defineModel
defineModel è una nuova macro pensato per semplificare l'implementazione di componenti con supporto a v-model. Non si tratta però di un feature del tutto inedita. Essa venne introdotta in via sperimentale nella versione 3.3 per poi diventare stabile soltanto con la 3.4 e supporta in modo più efficiente i modificatori v-model.
v-bind Same-name Shorthand
Si tratta di un adattamento sintattico richiesto da tempo grazie al quale un'espressione come la seguente:
<img :id="id" :src="src" :alt="alt">
potrà essere abbreviata in questo modo:
<img :id :src :alt>
Il ritardo nella sua introduzione era dovuto al timore che essa potesse creare confusione nell'uso con gli attributi booleani. Si è poi optato per integrarla nel framework considerando la natura dinamica di v-bind
.
Messaggi di errore
In Vue i messaggi di errore diventano più brevi in fase di produzione. Ciò consente di ottenere tutte le informazioni necessarie al debugging durante lo sviluppo risparmiando sulla dimensione dei bundle quando si passa al deployment. Dato che però questa impostazione potrebbe rendere più difficile identificare le cause degli errori si è deciso di aggiungere delle referenze a questi ultimi nella documentazione.
Namespace JSX globale deprecato
Con la versione 3.4 Vue non registra più di default il namespace JSX globale. Questo cambiamento è stato necessario per evitare collisioni di namespace globali con React, in modo che i file TSX di entrambe le librerie possano coesistere nel medesimo progetto. Per gli utenti che utilizzano solo i file SFC (Single File Component) con l'ultima versione di Volar non dovrebbero comunque verificarsi comportamenti inattesi.