Vue對(duì)象的組成和掛載方式詳解
一、Vue對(duì)象的基本組成
Vue對(duì)象的基本組成可以通過一個(gè)簡(jiǎn)單的Vue實(shí)例來講解。下面是一個(gè)基本的Vue實(shí)例的代碼示例,以及對(duì)其基本組成的解釋:
var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
},
computed: {
reversedMessage: function () {
return this.message.split('').reverse().join('')
}
},
watch: {
message: function (newVal, oldVal) {
console.log('Message changed from', oldVal, 'to', newVal)
}
}
})
在這個(gè)例子中,vm 是一個(gè)Vue對(duì)象,它是通過 new Vue() 創(chuàng)建的。這個(gè)Vue對(duì)象包含了Vue應(yīng)用程序的基本組成:
el: 這是一個(gè)頁面中已存在的DOM元素,用于掛載Vue實(shí)例。在這個(gè)例子中,它掛載到匹配選擇器 #app 的第一個(gè)元素上。
data: 這是一個(gè)函數(shù),返回一個(gè)對(duì)象,該對(duì)象包含了我們希望與我們的視圖同步的數(shù)據(jù)。在這個(gè)例子中,我們有一個(gè)名為 message 的數(shù)據(jù)屬性。
methods: 這是一個(gè)對(duì)象,包含了我們可以在視圖中使用的方法。在這個(gè)例子中,我們有一個(gè) reverseMessage 方法,用于反轉(zhuǎn) message 屬性的值。
computed: 這是一個(gè)對(duì)象,包含了計(jì)算屬性。計(jì)算屬性是基于它們的依賴進(jìn)行緩存的。在這個(gè)例子中,reversedMessage 是一個(gè)計(jì)算屬性,它返回 message 屬性的反轉(zhuǎn)字符串。
watch: 這是一個(gè)對(duì)象,包含了我們需要觀察的Vue實(shí)例的數(shù)據(jù)屬性。當(dāng)被觀察的數(shù)據(jù)屬性發(fā)生變化時(shí),我們可以執(zhí)行一些自定義的邏輯。在這個(gè)例子中,我們觀察 message 屬性,并在它發(fā)生變化時(shí)打印一條消息。
Vue.js中,Vue對(duì)象的掛載通常指的是將Vue實(shí)例與頁面上的DOM元素進(jìn)行關(guān)聯(lián),以便Vue實(shí)例能夠控制和管理該DOM元素及其子元素。Vue對(duì)象的掛載可以通過幾種不同的方式來實(shí)現(xiàn),下面通過代碼實(shí)例來講解這些方式。
二、Vue對(duì)象掛載的幾種方式
1. 使用el選項(xiàng)自動(dòng)掛載
在創(chuàng)建Vue實(shí)例時(shí),可以通過el選項(xiàng)指定一個(gè)頁面中已存在的DOM元素來掛載Vue實(shí)例。這是最常見的掛載方式。
javascript
var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
在這個(gè)例子中,Vue實(shí)例將會(huì)掛載到匹配選擇器#app的第一個(gè)元素上。
2. 使用$mount方法手動(dòng)掛載
如果Vue實(shí)例在創(chuàng)建時(shí)沒有指定el選項(xiàng),那么可以通過調(diào)用實(shí)例上的$mount方法來手動(dòng)掛載。
javascript
var vm = new Vue({
data: {
message: 'Hello Vue!'
}
})
// 手動(dòng)掛載到#app元素
vm.$mount('#app')
在這個(gè)例子中,Vue實(shí)例在創(chuàng)建時(shí)沒有指定el選項(xiàng),而是通過調(diào)用$mount方法并傳入選擇器字符串’#app’來手動(dòng)掛載到頁面上的元素。
3. 使用template選項(xiàng)和replace屬性
在創(chuàng)建Vue實(shí)例時(shí),可以通過template選項(xiàng)提供一個(gè)字符串模板來替換掛載的元素。如果希望用模板替換掛載的元素,可以設(shè)置replace屬性為true。
javascript
var vm = new Vue({
el: '#app',
replace: true,
template: '<p>{{ message }}</p>',
data: {
message: 'Hello Vue!'
}
})
在這個(gè)例子中,Vue實(shí)例將會(huì)掛載到#app元素上,并用提供的模板替換該元素。
4. 使用render函數(shù)
Vue實(shí)例還提供了一個(gè)render選項(xiàng),允許你使用JavaScript代碼來聲明式地生成DOM。這種方式比使用template字符串更加靈活和強(qiáng)大。
javascript
var vm = new Vue({
el: '#app',
render: function (createElement) {
return createElement('p', this.message)
},
data: {
message: 'Hello Vue!'
}
})
在這個(gè)例子中,Vue實(shí)例使用render函數(shù)來生成DOM。createElement是一個(gè)用于創(chuàng)建虛擬DOM節(jié)點(diǎn)的函數(shù),它接收一個(gè)標(biāo)簽名稱和子節(jié)點(diǎn)作為參數(shù),并返回一個(gè)虛擬DOM節(jié)點(diǎn)。
到此這篇關(guān)于Vue對(duì)象的組成和掛載方式詳解的文章就介紹到這了,更多相關(guān)Vue對(duì)象組成和掛載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用proxytable 配置解決 vue-cli 的跨域請(qǐng)求問題【推薦】
這篇文章主要介紹了利用 proxytable 配置解決 vue-cli 的跨域請(qǐng)求問題,本文的目錄結(jié)構(gòu)基于 webpack 模板結(jié)構(gòu),需要的朋友可以參考下2018-05-05
antdesign-vue結(jié)合sortablejs實(shí)現(xiàn)兩個(gè)table相互拖拽排序功能
這篇文章主要介紹了antdesign-vue結(jié)合sortablejs實(shí)現(xiàn)兩個(gè)table相互拖拽排序功能,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn)
這篇文章主要介紹了解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
vue echarts實(shí)現(xiàn)柱狀圖動(dòng)態(tài)展示
這篇文章主要為大家詳細(xì)介紹了vue echarts實(shí)現(xiàn)柱狀圖動(dòng)態(tài)展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Create?vite理解Vite項(xiàng)目創(chuàng)建流程及代碼實(shí)現(xiàn)
這篇文章主要為大家介紹了Create?vite理解Vite項(xiàng)目創(chuàng)建流程及代碼實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目
這篇文章主要介紹利用Vue3 創(chuàng)建Vue CLI 項(xiàng)目,下面文章內(nèi)容附有官方文檔鏈接,安裝過程,需要的可以參考一下2021-10-10

