今天解決了一個長期困擾著我的問題,現(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ā)的。具體原因留到日后再做研究。
本文同步自我的博客