大多数人在刚使用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()