淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件
簡介
Vue.use( plugin ):安裝 Vue.js 插件。如果插件是一個(gè)對象,必須提供 install 方法。如果插件是一個(gè)函數(shù),它會被作為 install 方法。install 方法將被作為 Vue 的參數(shù)調(diào)用。
當(dāng) install 方法被同一個(gè)插件多次調(diào)用,插件將只會被安裝一次。
Vue.js 的插件應(yīng)當(dāng)有一個(gè)公開方法 install 。這個(gè)方法的第一個(gè)參數(shù)是 Vue 構(gòu)造器,第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對象:
MyPlugin.install = function (Vue, options) {
// 1. 添加全局方法或?qū)傩?
Vue.myGlobalMethod = function () {
// 邏輯...
}
// 2. 添加全局資源
Vue.directive('my-directive', {
bind (el, binding, vnode, oldVnode) {
// 邏輯...
}
...
})
// 3. 注入組件
Vue.mixin({
created: function () {
// 邏輯...
}
...
})
// 4. 添加實(shí)例方法
Vue.prototype.$myMethod = function (methodOptions) {
// 邏輯...
}
}
通過全局方法 Vue.use() 使用插件:
// 調(diào)用 `MyPlugin.install(Vue)` Vue.use(MyPlugin)
也可以傳入一個(gè)選項(xiàng)對象:
Vue.use(MyPlugin, { someOption: true })
Vue.use 會自動阻止多次注冊相同插件,屆時(shí)只會注冊一次該插件。
Vue.js 官方提供的一些插件 (例如 vue-router) 在檢測到 Vue 是可訪問的全局變量時(shí)會自動調(diào)用 Vue.use()。然而在例如 CommonJS 的模塊環(huán)境中,你應(yīng)該始終顯式地調(diào)用 Vue.use():
// 用 Browserify 或 webpack 提供的 CommonJS 模塊環(huán)境時(shí)
var Vue = require('vue')
var VueRouter = require('vue-router')
// 不要忘了調(diào)用此方法
Vue.use(VueRouter)
實(shí)例:實(shí)現(xiàn)一個(gè)children組件
在main.js中使用該組件的方法:
import childModule from './components/children' Vue.use(childModule)
組件文件夾的目錄結(jié)構(gòu)如下:
|-components |-children |-index.js 導(dǎo)出組件,并且install |-children.vue (定義自己的組件模板)
children.vue代碼如下:
import childrencomponent from './children.vue'
const childrenMo = {
install:function(Vue){
Vue.component('childModule',childrencomponent)
}
}
export default childrenMo
這樣就實(shí)現(xiàn)了一個(gè)通過vue.use調(diào)用一個(gè)全局組件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Element-ui Image圖片按需引入大圖預(yù)覽
這篇文章主要為大家介紹了Element-ui Image圖片按需引入大圖預(yù)覽實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能示例代碼
在Vue項(xiàng)目中,通過使用vue-print-nb插件,可以實(shí)現(xiàn)頁面的打印功能,這篇文章主要介紹了vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能的相關(guān)資料,需要的朋友可以參考下2024-10-10
vue.js 實(shí)現(xiàn)v-model與{{}}指令方法
這篇文章主要介紹了vue.js 實(shí)現(xiàn)v-model與{{}}指令方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)的相關(guān)資料,在項(xiàng)目開發(fā)中相必大家時(shí)常會遇到按鈕重復(fù)點(diǎn)擊后引起事件重復(fù)提交的問題,需要的朋友可以參考下2023-08-08
vue項(xiàng)目首次打開時(shí)加載速度很慢的優(yōu)化過程
這篇文章主要介紹了vue項(xiàng)目首次打開時(shí)加載速度很慢的優(yōu)化過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

