淺談Vue組件及組件的注冊(cè)方法
相信在使用Vue進(jìn)行項(xiàng)目開(kāi)發(fā)的時(shí)候很多人會(huì)接觸到vue組件,最常見(jiàn)的就是我們使用的element-ui組件庫(kù),用起來(lái)確實(shí)很方便,大大減少了我們的開(kāi)發(fā)時(shí)間。在一個(gè)項(xiàng)目中其實(shí)有很多可復(fù)用的代碼塊,如果我們可以把這些內(nèi)容封裝成一個(gè)組件就能夠很方便的進(jìn)行各種重復(fù)使用。
那么什么是Vue組件呢?它是vue.js最強(qiáng)大的功能之一,是可擴(kuò)展的html元素,是封裝可重用的代碼,同時(shí)也是Vue實(shí)例,可以接受相同的選項(xiàng)對(duì)象(除了一些根級(jí)特有的選項(xiàng)) 并提供相同的生命周期鉤子。
使用組件
組件名大小寫
定義組件名的方式有兩種:
使用 kebab-case
Vue.component('my-component-name', { /* ... */ })
當(dāng)使用 kebab-case (短橫線分隔命名) 定義一個(gè)組件時(shí),你也必須在引用這個(gè)自定義元素時(shí)使用 kebab-case,例如 <my-component-name>。
使用 PascalCase
Vue.component('MyComponentName', { /* ... */ })
當(dāng)使用 PascalCase (駝峰式命名) 定義一個(gè)組件時(shí),你在引用這個(gè)自定義元素時(shí)兩種命名法都可以使用。也就是說(shuō) <my-component-name> 和 <MyComponentName> 都是可接受的。注意,盡管如此,直接在 DOM (即非字符串的模板) 中使用時(shí)只有 kebab-case 是有效的。
組件的注冊(cè)分為全局注冊(cè)和局部注冊(cè)。
全局注冊(cè)
我們已經(jīng)知道創(chuàng)建一個(gè)Vue實(shí)的方法
new Vue({
el: '#app',
//選項(xiàng)
})
注冊(cè)全局組件可以使用Vue.component(tagName,options)。例如
Vue.component('my-apprvuser',{
template:'',
data:function(){
return{}
}
//選項(xiàng)
})
上面是一個(gè)最簡(jiǎn)單的全局注冊(cè)例子,但是實(shí)際上我們并不會(huì)這么用。以vue-cli為腳手架工具來(lái)說(shuō)。我們會(huì)單獨(dú)創(chuàng)建一個(gè)vue文件來(lái)封裝一個(gè)組件。這里我們創(chuàng)建一個(gè) apprvUser.vue 文件

該文件結(jié)構(gòu)和正常的vue文件一樣,里面是我們要封裝的組件
然后在我們的main.js文件(也是入口文件)中注冊(cè)全局組件
//注冊(cè)審核人(申請(qǐng))組件
import apprvUser from './views/audit/apprvUser'
Vue.component('my-apprvuser',apprvUser)
這里需要注意引用vue文件的路徑不能錯(cuò),這樣在全局注冊(cè)之后你在其他組件中就能直接使用組件<my-apprvuser></my-apprvuser>,全局注冊(cè)組件就是這樣了。
局部注冊(cè)
局部注冊(cè)就是在你想要使用的vue文件中進(jìn)行注冊(cè)引入。vue官網(wǎng)api中有一個(gè)簡(jiǎn)單的例子,大家可以看一下,但是實(shí)際過(guò)程中我們基本上都不會(huì)那樣用。
還是用上述的 apprvUser.vue 文件來(lái)舉例。
我是在該文件同級(jí)目錄下的另一個(gè)vue文件中注冊(cè)該組件的,在export default的一個(gè)選項(xiàng)components中進(jìn)行該組件的注冊(cè)。
這就是局部組件的注冊(cè),在當(dāng)前文件中就可以使用該組件了,但是在其他組件中不能直接使用該組件。要在其他組件/vue文件中使用該組件必須進(jìn)行全局或者局部注冊(cè)。
//注冊(cè)審核人(申請(qǐng))組件
import apprvUser from './apprvUser'
export default {
components: {
'my-apprvuser':apprvUser
},
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于vue實(shí)現(xiàn)動(dòng)態(tài)Tab標(biāo)簽頁(yè)功能
這篇文章主要介紹了如何基于vue實(shí)現(xiàn)動(dòng)態(tài)Tab標(biāo)簽頁(yè)功能,文中通過(guò)代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-09-09
在vue-cli腳手架中配置一個(gè)vue-router前端路由
這篇文章主要給大家介紹了在vue-cli腳手架中配置一個(gè)vue-router前端路由的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
基于vue+element實(shí)現(xiàn)全局loading過(guò)程詳解
這篇文章主要介紹了基于vue+element實(shí)現(xiàn)全局loading過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Vue3實(shí)現(xiàn)全局loading指令的示例詳解
這篇文章主要介紹了Vue3實(shí)現(xiàn)全局loading指令,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
vue項(xiàng)目的訪問(wèn)端口及其設(shè)置方式
這篇文章主要介紹了vue項(xiàng)目的訪問(wèn)端口及其設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-10-10
Element Plus暗黑模式及模式自由切換的實(shí)現(xiàn)
本文詳細(xì)介紹了如何在使用Vite構(gòu)建的Vue項(xiàng)目中實(shí)現(xiàn)ElementPlus暗黑模式及模式切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11

