Vue.js è un framework JavaScript progressivo che semplifica la costruzione di interfacce utente reattive. Al centro della sua filosofia c’è un potente sistema di reattività, che permette ai dati di rimanere sincronizzati con l'interfaccia in modo dichiarativo e intuitivo.
Cos'è la Reattività in Vue.js
In Vue.js, la reattività si basa su un sistema che "osserva" le proprietà di un oggetto e aggiorna automaticamente il DOM quando queste cambiano. Quando si crea un'istanza Vue, tutte le proprietà dichiarate nell'opzione data
vengono trasformate in proprietà reattive.
const app = Vue.createApp({
data() {
return {
message: 'Ciao Vue!'
};
}
});
In questo esempio, message
è una proprietà reattiva: qualsiasi modifica al suo valore comporterà un aggiornamento automatico del DOM.
Come Funziona il Sistema Reattivo
Vue utilizza Object.defineProperty
(fino alla versione 2) e Proxy
(in Vue 3) per intercettare l'accesso e le modifiche alle proprietà dell’oggetto.
// Vue 3 usa Proxy internamente
const state = Vue.reactive({
count: 0
});
state.count++; // Reattivo
Il metodo reactive
in Vue 3 consente di creare oggetti reattivi manualmente, molto utile nei componenti Composition API.
Monitoraggio delle Proprietà Reattive
Vue mette a disposizione alcuni strumenti per "osservare" e reagire ai cambiamenti delle proprietà. Tra questi, watch
e computed
sono i più comuni.
Computed
Le proprietà computate sono valori derivati che si aggiornano automaticamente quando le loro dipendenze cambiano.
const count = ref(0);
const doubled = computed(() => count.value * 2);
Watch
La funzione watch
permette di eseguire effetti collaterali quando una proprietà cambia.
watch(count, (newVal, oldVal) => {
console.log(`count è cambiato da ${oldVal} a ${newVal}`);
});
Limitazioni del Sistema Reattivo
Anche se potente, il sistema reattivo ha alcune limitazioni:
- Le nuove proprietà aggiunte dopo l'inizializzazione non sono reattive in Vue 2 (risolto in Vue 3 con
Proxy
). - Le modifiche profonde negli oggetti annidati richiedono un monitoraggio esplicito.
Conclusione
Il sistema di reattività di Vue.js è uno dei suoi punti di forza principali. Capire come monitorare e reagire ai cambiamenti delle proprietà è fondamentale per creare applicazioni moderne, efficienti e manutenibili.