您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關vue.use有什么用的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
vue.use是一個官方API,是全局注冊一個組件或者插件的方法,如果插件(plugin)是一個對象,必須提供install方法;如果插件是一個函數,它會作為install方法。該方法需要在調用“New Vue()”之前被調用。
官方API介紹:
Vue.use(plugin)
參數
{Object | function} plugin
用法
安裝Vue.js 插件。如果插件(plugin)是一個對象,必須提供install方法。如果插件是一個函數,它會作為install方法。install方法調用時,會將Vue作為參數傳入。
該方法需要在調用New Vue()之前被調用。
當install方法被同一個插件多次調用,插件將只會被安裝一次。
Vue.use的使用
Element-UI例子
根據ElementUI文檔,在Vue cli搭建的項目中這樣使用ElementUI
/* mian.js */ import Vue from 'vue'; import ElementUI from 'element-ui'; // 1 import 'element-ui/lib/theme-chalk/index.css'; import App from './App.vue'; Vue.use(ElementUI); // 2 new Vue({ el: '#app', render: h => h(App) });
以上代碼便完成了Element的引入,需要注意的是,樣式文件需要單獨引入。
后面就可以在Vue的單文件組件中直接使用<el-xxx></el-xxx>來使用Element元素。
所以這到底發生了什么?
1、第一處注釋導入ElementUI
import ElementUI from 'element-ui'
// TODO 理解如何導入模塊
以下是src/index.js的內容。可以看到,index.js導出了一個對象,在上面的import語句中,這個對象被賦予ElementUI的變量名。請注意到這里的install函數。
/* index.js */ export default { version: '2.11.1', locale: locale.use, i18n: locale.i18n, install, ... };
2、第二處注釋安裝ElementUI
Vue.use(ElementUI);
我們觀察到這里使用了Vue.use方法并將ElementUI這個對象傳入。從Vue.use文檔中可以得知,這會調用ElementUI對象的install方法,并將Vue傳入。
// install函數 const install = function(Vue, opts = {}) { locale.use(opts.locale); locale.i18n(opts.i18n); // 安裝組件:通過Vue.component聲明全局組件,所以我們能夠直接使用而不需要聲明 components.forEach(component => { Vue.component(component.name, component); }); Vue.use(InfiniteScroll); Vue.use(Loading.directive); // 在Vue的原型鏈上做一些小動作所以所有的Vue實例都可以訪問到這些生命的變量 // 變量名使用$開頭表明這是公共API屬性或者方法,這是一種約定。 Vue.prototype.$ELEMENT = { size: opts.size || '', zIndex: opts.zIndex || 2000 }; // ok,這里我們看到了許多用于提示的組件都設定在Vue原型鏈上,所以我們可以在Vue實例內部直接使用this.$alert Vue.prototype.$loading = Loading.service; Vue.prototype.$msgbox = MessageBox; Vue.prototype.$alert = MessageBox.alert; Vue.prototype.$confirm = MessageBox.confirm; Vue.prototype.$prompt = MessageBox.prompt; Vue.prototype.$notify = Notification; Vue.prototype.$message = Message; };
感謝各位的閱讀!關于vue.use有什么用就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。