大多數人在剛使用vue時,在引入axios時都會走如下的坑
import Vue from 'vue'
import axios from 'axios'
Vue.use(Vuex)
Vue.use(axios)
//Error:Cannot read property 'protocol' of undefined
使用Vue.use()來注冊axios這種方法是不對的,引入axios不是個插件。
我們在安裝其他插件的時候,可以直接在main.js中引入并使用Vue.use()來注冊,但是axios并不是插件,所以不能用這種方式引入,只能在每個需要發送請求的組件中引入。但是這樣太繁瑣了,為了解決這個問題,我們可以在引入axios后,通過修改原型鏈,來方便使用。如下方式
//main.js引入
import Vue from 'vue'
import axios from 'axios'
Vue.prototype.$http = axios
//組件中使用:
this.$http.post()