經(jīng)常會(huì)見到vue.use()和vue.extend()感局,到底什么意思呢干茉?
一聪姿、vue.use()
經(jīng)常會(huì)用到Vue.use(VueRouter)算芯、Vue.use(elementUI),因?yàn)檫@些插件有install袋励。
而axios沒有install侥啤,axios不能use当叭。因?yàn)閍xios不是專門為vue一個(gè)設(shè)計(jì)的,他是一個(gè)http庫愿棋。其他框架也可以用科展。
//share.js
export default {
install: (Vue) => {
Vue.prototype.$share = (options) => {
console.log("install");
}
}
}
//main.js
import share from "./share.js"
Vue.use(share);
//App.vue
this.$share();//install
二、vue.extend()
使用vue.extend返回一個(gè)子類構(gòu)造函數(shù)糠雨,也就是預(yù)設(shè)部分選項(xiàng)的vue實(shí)例構(gòu)造器才睹。
后可使用vue.component進(jìn)行實(shí)例化、或使用new extendName().$mount(''+el)方式進(jìn)行實(shí)例化(從而實(shí)現(xiàn)模擬組件)甘邀。
//App.vue
<div id="mount-point"></div>
// 創(chuàng)建構(gòu)造器
var Profile = Vue.extend({
template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
data: function () {
return {
firstName: 'Walter',
lastName: 'White',
alias: 'Heisenberg'
}
}
})
// 創(chuàng)建 Profile 實(shí)例琅攘,并掛載到一個(gè)元素上。
new Profile().$mount('#mount-point')
//最終顯示
<p>Walter White aka Heisenberg</p>