在Vue中,data是用來存儲組件狀態的地方。我們可以把它看成組件的私有數據,每個組件都擁有自己的data屬性。在模板(template)中,我們可以通過插值表達式{{}}或指令來使用這些數據。當我們聲明一個組件時,可以通過提供data選項來定義初始數據。這些數據可以是簡單的字符串、數字、布爾值或數組、對象等復合類型。在這篇文章中,我們將重點介紹在Vue中如何給data屬性賦值。
在 Vue中,給data賦值的方式,分為兩種:在創建實例之前和在創建實例之后。
1. 在創建實例之前
new Vue({ data: { message: 'Hello Vue.js!', }, })
在前端組件完全加載之前,定義了一個data對象,并賦值給Vue實例的data屬性。這種賦值的方式只能用于創建Vue實例時使用,默認的Vue實例會自動地將data選項中的所有屬性轉化為getter/setter,從而可以實現數據響應式(即修改Data屬性即使影響了對應的HTML結構)。
2. 在創建實例之后
new Vue({ el: '#app', data() { return { message: 'Hello Vue.js!', } } })
如上面代碼所示,在創建實例之后,我們可以使用data選項來動態地改變組件的狀態。這種方式在實例化之后也可以添加、刪除屬性。需要注意的是,由于Vue不允許在已經創建的實例上添加根級別的響應式屬性,所以必須像上面那樣在創建實例后再添加屬性。另外,對于對象類型的屬性,應當通過Vue提供的API來實現響應式添加或賦值,比如$set()、Vue.set()等。
除此之外,我們還可以在Vue實例中使用$watch()API來監聽一個data屬性的變化。通過$watch()可以實現對變量的監聽,如果監聽到發生變化,則觸發回調函數。需要注意的是,當data屬性改變時,如果不是在響應系統的監聽下,那么它的變化將不會傳播到React組件中。
最后,需要強調一下,在給data屬性賦值時,應該遵循一個簡單的規則:在Vue實例中沒有聲明的屬性,不能夠被觀察和響應。也就是說,給data屬性賦值必須在Vue實例中聲明,才能實現監聽和響應。否則,Vue將被視為一個靜態的、不可變的對象。