當我們使用 Vue 構(gòu)建 web 應用時,我們會把 Vue 實例掛載到某個頁面中。這個掛載點決定了 Vue 實例要控制哪些 DOM 元素,并且在實例內(nèi)部,我們可以通過一個特殊的屬性 $el 來訪問這個掛載點。
在有些情況下,我們可能需要在運行時修改掛載頁面,比如我們要在一個已有的頁面中動態(tài)地創(chuàng)建實例,或者我們要通過路由等工具在頁面間切換時動態(tài)地修改掛載點。Vue 提供了兩種方式來修改掛載頁面:直接修改 $el 屬性和使用$mount 方法。
// 直接修改 $el 屬性
const app = new Vue({
template: <div>{{message}}</div>,
data: {
message: "Hello Vue!"
}
})
app.$mount("#app")
// 使用 $mount 方法
const app = new Vue({
template: <div>{{message}}</div>,
data: {
message: "Hello Vue!"
}
})
app.$mount()
document.getElementById("app").appendChild(app.$el)
使用 $mount 方法可以更方便地對掛載頁面進行修改,因為我們可以在實例創(chuàng)建后再決定要掛載到哪里,這樣可以更加靈活。另外,如果我們需要在服務端渲染時修改掛載點,$mount 方法也是唯一的選擇。
除了修改掛載頁面的方式之外,我們還需要注意一些被添加到 Vue 實例中的屬性和方法。比如在 Vue 實例上添加一個屬性時,應該使用 $data 對象來訪問數(shù)據(jù),并且在使用 Vue 的生命周期函數(shù)時,我們需要明確這些函數(shù)是按順序執(zhí)行的。
const app = new Vue({
template: <div>{{message}}</div>,
data: {
message: "Hello Vue!"
},
created() {
// 這里會在 app.$el 和 app.$data 被初始化后執(zhí)行
},
mounted() {
// 這里會在組件掛載到頁面后執(zhí)行
}
})
console.log(app.$data.message) // "Hello Vue!"
總之,Vue 提供了很多工具來讓我們方便地控制頁面。要修改掛載頁面,我們可以直接修改 $el 屬性或者使用 $mount 方法,并且需要注意其他屬性和方法的使用。希望本文對你有所幫助!
上一篇vue 做在線答題
下一篇vue 單獨加載模塊