Vue.js: il framework JavaScript progressivo

Evan You crea Vue.js combinando il meglio di AngularJS e React: reattività basata su getter/setter, componenti single-file e adozione incrementale senza riscritture.

Open SourceWeb Open SourceVue.jsJavaScriptFrontendSPAFramework

Un framework nato dall’esperienza pratica

Vue.js viene rilasciato nel febbraio 2014 da Evan You, ingegnere che ha lavorato in Google su progetti basati su AngularJS. L’esperienza diretta con i limiti di AngularJS — la complessità della configurazione, la curva di apprendimento ripida, la difficoltà di adozione parziale in progetti esistenti — porta You a progettare un framework con una filosofia diversa: essere progressivo, adottabile un pezzo alla volta.

Vue prende il data binding bidirezionale e i template HTML da AngularJS, ma elimina la struttura rigida. Prende l’idea dei componenti come unità di composizione dell’interfaccia da React, ma mantiene i template HTML come opzione predefinita anziché richiedere JSX. Il risultato è un framework che si posiziona tra i due in termini di complessità, accessibile ai principianti ma sufficientemente potente per applicazioni complesse.

Reattività e sistema di rendering

Il cuore di Vue è il suo sistema di reattività. Quando si crea un’istanza Vue con un oggetto data, il framework attraversa ogni proprietà è la converte in coppie di getter e setter tramite Object.defineProperty. Quando un componente accede a una proprietà durante il rendering, il getter registra quella proprietà come dipendenza. Quando la proprietà viene modificata, il setter notifica tutti i componenti che dipendono da essa, attivando un re-rendering mirato.

Questo sistema è trasparente per lo sviluppatore: si lavora con oggetti JavaScript normali, e Vue si occupa di tracciare le dipendenze e aggiornare il DOM in modo efficiente. Il rendering utilizza un Virtual DOM — una rappresentazione in memoria della struttura del documento — che minimizza le operazioni sul DOM reale confrontando lo stato precedente con quello nuovo.

Componenti single-file

Vue introduce i single-file component (SFC): file con estensione .vue che racchiudono template HTML, logica JavaScript e stili CSS in un unico file. Ogni sezione è delimitata da tag dedicati — <template>, <script>, <style> — e gli stili possono essere dichiarati come scoped, applicabili solo al componente che li definisce.

Questa organizzazione risolve un problema pratico: in un’applicazione complessa, tenere template, logica e stili nello stesso file riduce il context switching e rende il componente un’unità autonoma e riutilizzabile.

Adozione incrementale

La caratteristica che distingue Vue è la possibilità di adottarlo incrementalmente. Si può iniziare aggiungendo un singolo tag <script> a una pagina esistente per rendere reattiva una porzione dell’interfaccia, senza build tool né configurazione. Quando il progetto cresce, si aggiungono componenti, routing con vue-router, gestione dello stato. Non è necessario riscrivere l’applicazione esistente: Vue si integra con ciò che c’è già.

Link: vuejs.org

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi