鍍金池/ 問答/HTML/ 將第三方插件放在 new Vue(){xxx}中和Vue.prototype.x

將第三方插件放在 new Vue(){xxx}中和Vue.prototype.xxx=xxx的區(qū)別是什么?

Vue.use(ElementUI)

Vue.prototype.$axios = axios
Vue.config.productionTip = false

new Vue({
el: '#app',
router,
store,
//axios,
i18n,
template: '<App/>',
components: { App }
})

在組件中使用$axios正常,this.$axios.get(可以正常執(zhí)行

但如果用下面這種方式就會(huì)提示TypeError: Cannot read property 'get' of undefined

Vue.use(ElementUI)

//Vue.prototype.$axios = axios
Vue.config.productionTip = false

new Vue({
el: '#app',
router,
store,
axios,
i18n,
template: '<App/>',
components: { App }
})

那么這兩種到底有什么區(qū)別呢?從我自己了解到的內(nèi)容,只知道在prototpye中使用的是實(shí)例中的屬性,在vue(){}中的是全局屬性,按照這種邏輯來說 我注冊(cè)到new vue(){}中不應(yīng)該有問題啊,可是為什么不行呢,

還有我理解Vue.use(ElementUI) 使用use方式的就是在使用標(biāo)簽庫,我的理解對(duì)嗎?

回答
編輯回答
替身

new Vue(config)

這里傳入Vue構(gòu)造函數(shù)的config 是vue框架做處理的 你傳入一些他沒處理的字段自然無效....

建議看下js 高程 構(gòu)造函數(shù)和原型!

2018年5月21日 10:12
編輯回答
敢試

你做項(xiàng)目直接在main.js配置一下 一個(gè)是全局注冊(cè) 一個(gè)是局部注冊(cè) 你這樣注冊(cè)無效

2017年9月12日 00:37
編輯回答
陌上花

區(qū)別是:

  • 不是為了vue寫的插件(插件內(nèi)要處理)不支持Vue.use()加載方式
  • 非vue官方庫不支持new Vue()方式
  • 每一個(gè)vue組件都是Vue的實(shí)例,所以組件內(nèi)this可以拿到Vue.prototype上添加的屬性和方法。
2018年8月24日 11:03
編輯回答
臭榴蓮

應(yīng)該用 Vue.use(axios)

2017年2月24日 00:54