在Vue中,數據定義了組件的狀態,控制了組件的顯示和行為。在Vue中,數據就是一個JavaScript對象,包含了組件的屬性和方法。Vue實例的數據對象就是一個響應式的代理,可以讓我們任意操作數據,并且會自動更新到視圖上。
var vm = new Vue({ data: { message: 'Hello Vue!' } })
在上面的代碼中,我們可以看到Vue實例中定義了一個數據對象,它的屬性有一個message。這個數據對象會被Vue實例代理,我們可以在模板中任意使用message屬性。比如:
{{ message }}
在上面的代碼中,我們使用{{}}語法將message屬性渲染到p標簽中。此時,p標簽中顯示的文本就是Hello Vue!。此時,如果我們通過JavaScript代碼修改了message的值,那么視圖中的數據也會即時更新:
vm.message = 'Hello Vue.js!'
在上面的代碼中,我們通過修改vm實例中的數據對象來修改message的值,此時視圖中的數據也會更新,p標簽中的文本會變成Hello Vue.js!。
Vue的數據綁定是單向的,也就是說,如果我們修改了頁面中的數據,那么Vue實例中的數據也會修改。但是如果我們修改了Vue實例中的數據,那么頁面中的數據不會被修改。這是因為Vue的數據綁定是從數據到視圖的,如果我們直接對視圖進行修改,那么數據不會同步。
除了普通的數據屬性,Vue中還有計算屬性和偵聽器。計算屬性是一個基于響應式依賴進行緩存的屬性,它只有在相關依賴發生改變時才會重新計算。偵聽器是一種更加通用的偵聽屬性變化的方法,當屬性變化時會自動觸發相應的回調函數。
除了上面的數據綁定方式,Vue還提供了另外一種數據綁定方式——指令。指令是以v-開頭的一種自定義屬性,它們作用于模板元素上,用于聲明屬性綁定、條件渲染、循環渲染等操作。比如:
{{ message }}
- {{ item }} - {{ index }}
在上面的代碼中,我們使用了v-if指令和v-for指令。v-if用于控制p標簽是否渲染,如果showMessage為true,則p標簽渲染,否則不渲染。v-for用于循環遍歷list數組,將每個數組元素渲染為li標簽。在模板中,我們可以使用item和index參數來引用遍歷的數據和索引。