詳解Vue.js中的data
本文從Vue.js的官方中文文件來逐行分析看看Vue.js的資料物件——data
文件之一:
分析一:
首先,data的型別可以是Object
其次,元件(component)裡的定義的data必須是方法型別的,至於為什麼接下來會介紹到;
文件之二:
分析二:
在上圖的例項中,app的data物件中有五個屬性,分別是:
<code>newTodoText,visitCount,hideCompletedTodos,todos,error</code>
Vue會把這五個屬性轉化為getter和setter來控制訪問物件app的屬性,以第一個屬性newTodoText為例設定了getter和setter:
文件之三:
分析三:
這個好理解,就是你可以在data中可以定義屬性時在屬性名開頭加上下劃線“_”或者美元符號“$”,就不可以直接訪問,
此時圖一會報錯,顯示 _first is not defined ,圖二才是正確姿勢
文件之四:
分析四:
這就是分析一要解決的問題了,為什麼元件(component)裡的定義的data必須是方法型別,原因就是在此,在工程中,每個元件都有可能用來被建立多個例項,而這個元件的例項他們的屬性是不能共用的!意思是元件A的屬性改變不能引起元件B的同一屬性改變,結合原型鏈知識很容易就能想清楚