Vue 組件化基本使用詳情
前言:
有時(shí)候有一組html結(jié)構(gòu)的代碼,并且這個(gè)上面可能還綁定了事件。然后這段代碼可能有多個(gè)地方都被使用到了,如果都是拷貝來(lái)拷貝去,很多代碼都是重復(fù)的,包括事件部分的代碼都是重復(fù)的。那么這時(shí)候我們就可以把這些代碼封裝成一個(gè)組件,以后在使用的時(shí)候就跟使用普通的html元素一樣,拿過(guò)來(lái)用就可以了。
1、什么叫做組件化
vue.js 有兩大法寶,一個(gè)是數(shù)據(jù)驅(qū)動(dòng),另一個(gè)就是組件化,那么問(wèn)題來(lái)了,什么叫做組件化,為什么要組件化?接下來(lái)我就針對(duì)這兩個(gè)問(wèn)題一一解答,所謂組件化,就是把頁(yè)面拆分成多個(gè)組件,每個(gè)組件依賴的 CSS、JS、模板、圖片等資源放在一起開發(fā)和維護(hù)。 因?yàn)榻M件是資源獨(dú)立的,所以組件在系統(tǒng)內(nèi)部可復(fù)用,組件和組件之間可以嵌套,如果項(xiàng)目比較復(fù)雜,可以極大簡(jiǎn)化代碼量,并且對(duì)后期的需求變更和維護(hù)也更加友好。
2、基本使用
<div id="app">
<button-counter></button-counter>
<button-counter></button-counter>
<button-counter></button-counter>
</div>
<script>
// 定義一個(gè)名為 button-counter 的新組件
Vue.component('ButtonCounter', {
data: function () {
return {
count: 0
}
},
template: '<button @click="count++">點(diǎn)擊了{(lán){ count }}次</button>'
})
const app = new Vue({
el: "#app",
data: {
message: "hello"
}
})
</script>
以上我們創(chuàng)建了一個(gè)叫做button-counter的組件,這個(gè)組件實(shí)現(xiàn)了能夠記錄點(diǎn)擊了多少次按鈕的功能。后期如果我們想要使用,就直接通過(guò)button-counter使用就可以了。然后因?yàn)榻M件是可復(fù)用的Vue實(shí)例,所以它們與new Vue接收相同的選項(xiàng),例如data、computed、watch、methods以及生命周期鉤子等。僅有的例外是像el這樣根實(shí)例特有的選項(xiàng)。
另外需要注意的是:組件中的data必須為一個(gè)函數(shù)!
我們來(lái)看下實(shí)現(xiàn)的效果:

我們上面使用了3次button-counter組件,所以頁(yè)面會(huì)顯示3個(gè),并且每個(gè)組件都會(huì)各自獨(dú)立維護(hù)它的 count,因?yàn)槟忝坑靡淮谓M件,就會(huì)有一個(gè)它的新實(shí)例被創(chuàng)建。每個(gè)實(shí)例可以維護(hù)一份被返回對(duì)象的獨(dú)立的拷貝,這就是我們data中使用函數(shù)的原因
到此這篇關(guān)于Vue 組件化基本使用詳情 的文章就介紹到這了,更多相關(guān)Vue 組件化使用 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)el-menu與el-tabs聯(lián)動(dòng)的項(xiàng)目實(shí)踐
本文講述了如何使用Vue.js中的ElementUI組件庫(kù)實(shí)現(xiàn)el-menu與el-tabs的聯(lián)動(dòng),通過(guò)在el-menu中選擇菜單項(xiàng),可以切換el-tabs的內(nèi)容區(qū)域,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
使用 Vue-TCB 快速在 Vue 應(yīng)用中接入云開發(fā)的方法
這篇文章主要介紹了如何使用 Vue-TCB 快速在 Vue 應(yīng)用中接入云開發(fā),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
vue中使用v-for時(shí)為什么不能用index作為key
這篇文章主要介紹了vue中使用v-for時(shí)為什么不能用index作為key,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
導(dǎo)致VUE頁(yè)面不刷新的問(wèn)題分析及解決方法
由于 Vue 會(huì)在初始化實(shí)例時(shí)對(duì) property 執(zhí)行 getter/setter 轉(zhuǎn)化,所以 property 必須在 data 對(duì)象上存在才能讓 Vue 將它轉(zhuǎn)換為響應(yīng)式的,這篇文章主要介紹了導(dǎo)致VUE頁(yè)面不刷新的問(wèn)題分析及解決方法,需要的朋友可以參考下2024-04-04
如何解決sass-loader和node-sass版本沖突的問(wèn)題
這篇文章主要介紹了如何解決sass-loader和node-sass版本沖突的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
解決vue-router 二級(jí)導(dǎo)航默認(rèn)選中某一選項(xiàng)的問(wèn)題
今天小編就為大家分享一篇解決vue-router 二級(jí)導(dǎo)航默認(rèn)選中某一選項(xiàng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
VUE實(shí)現(xiàn)強(qiáng)制渲染,強(qiáng)制更新
今天小編就為大家分享一篇VUE實(shí)現(xiàn)強(qiáng)制渲染,強(qiáng)制更新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

