創(chuàng)建一個(gè) Vue 實(shí)例
????????每個(gè) Vue 應(yīng)用都是通過(guò)用?Vue?函數(shù)創(chuàng)建一個(gè)新的?Vue 實(shí)例開(kāi)始的:
????????當(dāng)創(chuàng)建一個(gè) Vue 實(shí)例時(shí)傻寂,你可以傳入一個(gè)選項(xiàng)對(duì)象推汽。包括:
? ??????一個(gè) Vue 應(yīng)用由一個(gè)通過(guò)?new Vue?創(chuàng)建的根 Vue 實(shí)例妖爷,以及可選的嵌套的霞玄、可復(fù)用的組件樹(shù)組成窜司。舉個(gè)例子焕毫,一個(gè) todo 應(yīng)用的組件樹(shù)可以是這樣的:
? ??????所有的 Vue 組件都是 Vue 實(shí)例蹲坷,并且接受相同的選項(xiàng)對(duì)象 (一些根實(shí)例特有的選項(xiàng)除外)。
數(shù)據(jù)與方法
????????當(dāng)一個(gè) Vue 實(shí)例被創(chuàng)建時(shí)邑飒,它向 Vue 的響應(yīng)式系統(tǒng)中加入了其?data?對(duì)象中能找到的所有的屬性循签。當(dāng)這些屬性的值發(fā)生改變時(shí),視圖將會(huì)產(chǎn)生“響應(yīng)”疙咸,即匹配更新為新的值县匠。當(dāng)這些數(shù)據(jù)改變時(shí),視圖會(huì)進(jìn)行重渲染撒轮。值得注意的是只有當(dāng)實(shí)例被創(chuàng)建時(shí)?data?中存在的屬性才是響應(yīng)式的乞旦。如果你知道你會(huì)在晚些時(shí)候需要一個(gè)屬性,但是一開(kāi)始它為空或不存在题山,那么你僅需要設(shè)置一些初始值兰粉。
? ??????唯一的例外是使用?Object.freeze(),這會(huì)阻止修改現(xiàn)有的屬性顶瞳,也意味著響應(yīng)系統(tǒng)無(wú)法再追蹤變化玖姑。
? ??????除了數(shù)據(jù)屬性崖蜜,Vue 實(shí)例還暴露了一些有用的實(shí)例屬性與方法。它們都有前綴?$客峭,以便與用戶定義的屬性區(qū)分開(kāi)來(lái)豫领。
實(shí)例生命周期鉤子
????????每個(gè) Vue 實(shí)例在被創(chuàng)建時(shí)都要經(jīng)過(guò)一系列的初始化過(guò)程——例如,需要設(shè)置數(shù)據(jù)監(jiān)聽(tīng)舔琅、編譯模板等恐、將實(shí)例掛載到 DOM 并在數(shù)據(jù)變化時(shí)更新 DOM 等。同時(shí)在這個(gè)過(guò)程中也會(huì)運(yùn)行一些叫做生命周期鉤子的函數(shù)备蚓,這給了用戶在不同階段添加自己的代碼的機(jī)會(huì)课蔬。
? ?????也有一些其它的鉤子,在實(shí)例生命周期的不同階段被調(diào)用郊尝,如?mounted二跋、updated和?destroyed。生命周期鉤子的?this?上下文指向調(diào)用它的 Vue 實(shí)例流昏。