Vue自定義全局組件制作方法

今天解決了一個長期困擾著我的問題,現(xiàn)在記錄一下,供日后參考。

涉及知識點是Vue.js官網(wǎng)教程中的插件使用

首先我遇到的問題就是我自定義的組件如果需要在項目中其他組件中多次被調(diào)用,而我之前的解決方法就是簡單的,哪里需要在哪引用。這無疑增加了許多代碼重復。

而在使用Vue.js的一些UI框架的時候則注意到,只需要在項目的入口文件中import這個插件然后在接著Vue.use(‘插件名’)。這樣就能在整個項目里面使用這個框架中的組件以及方法了。

查閱資料后發(fā)現(xiàn),自定義的組件需要提供一個install方法

import sideblockComponent from './sideBlock'
const defaultComponentName = 'sidebar'

const Sidebar = {
    install(Vue, options = {}) {
        const componentName = options.componentName || defaultComponentName //提供可選的組件名
        Vue.component(componentName, sideblockComponent)
    }
}

export default Sidebar

像這樣 引入自己編寫好的組件,然后創(chuàng)建一個對象,并包含一個install方法,并使用Vue.component()方法注冊成Vue全局組件,最后export default導出這個對象。

到此最關(guān)鍵的步驟已經(jīng)做好,接下來是最最關(guān)鍵的步驟。


我們需要在項目的入口文件中引入剛剛做好的組件,并且通過Vue.use(引入的組件)來使用插件。
到此,一個全局Vue組件就弄好了。我們在提供install方法的同時也可以通過Vue.$emit()的方法來觸發(fā)組件中的方法,但最近在使用Element UI時發(fā)現(xiàn)他們組件中的方法一般都是通過Vue.$refs()來觸發(fā)的。具體原因留到日后再做研究。

本文同步自我的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容