在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 關(guān)于axios在vue-cli搭建的項(xiàng)目的使用。

關(guān)于axios在vue-cli搭建的項(xiàng)目的使用。

為什么在項(xiàng)目里的main.js里引入了在axios,在其他 .vue頁(yè)面里使用提示未定義?
為什么必須在 .vue的當(dāng)前頁(yè)面引入axios才能夠使用?

回答
編輯回答
巷尾

其實(shí)你疑惑的是為什么要這么麻煩, 要么在main里面把a(bǔ)xios放到vue的原型里用, 要么每個(gè).vue 組件內(nèi) import.
為什么不跟以前寫jquery一樣, script引入就能在頁(yè)面的任何一個(gè)地方用.

其實(shí)這就是一個(gè)模塊化開發(fā)的理念. JS之間的互相依賴問(wèn)題. 就好像你寫 .vue 組件, 你必須在父組件內(nèi) import 然后注冊(cè)到componets內(nèi)才能用的道理是一樣的.

以后別人維護(hù)你代碼的時(shí)候就能一眼就能看到每個(gè)文件之間的依賴關(guān)系和路徑, 不會(huì)出現(xiàn)出現(xiàn)一個(gè)BUG, 然后整個(gè)項(xiàng)目的找代碼的情況.

有興趣就去搜索一下模塊化開發(fā)的相關(guān)知識(shí)吧.

2017年3月16日 14:36
編輯回答
初心

其實(shí)有兩種方案:
方案一:
就是大家上面說(shuō)的

Vue.prototype.$axios = axios

將axios模塊綁定到全局的Vue原型上面。
方案二:
單獨(dú)寫一個(gè)utils工具類,
在這個(gè)工具類中

import axios from 'axios'
import qs from 'qs'

導(dǎo)入 axios模塊和qs模塊(為了axios 進(jìn)行post請(qǐng)求時(shí)對(duì)參數(shù)進(jìn)行格式化)
然后在這里

export funciton(){}

定義導(dǎo)出的方法,在組件中如果要使用的時(shí)候
直接import 進(jìn)去就可以了

2018年6月25日 19:41
編輯回答
糖豆豆

因?yàn)樗皇且粋€(gè)vue的component,所以不能在main.js注冊(cè)了就能全局調(diào)用,不過(guò)有一個(gè)方法:

import axios from "axios";
Vue.prototype.$ajax = axios;

之后就可以在.vue文件通過(guò)調(diào)用

this.$ajax

來(lái)獲取axios實(shí)例

2017年7月26日 04:22
編輯回答
久舊酒

因?yàn)槊總€(gè)vue組件有獨(dú)立的作用域。要全局使用可以把a(bǔ)xios掛載到Vue的原型上。然后在組件內(nèi)通過(guò)this訪問(wèn)。

import Vue from 'vue'
import axios from 'axios'

Vue.prototype.axios = axios


//在組件中
this.axios(opt).then(fn)
2017年10月8日 22:52
編輯回答
獨(dú)特范

是的,沒(méi)錯(cuò)的

2017年11月30日 04:10
編輯回答
夏夕

查了下相關(guān)資料,發(fā)現(xiàn)可以通過(guò) Object.defineProperty 來(lái)解決。

import axios from 'axios';
Object.defineProperty(Vue.prototype, '$_axios', { value: axios });

然后在.vue頁(yè)面中引用

this.$_axios(opt)
2018年7月29日 13:42