Vue 中将axios挂载到Vue的原型上并配置请求根路径的原因

742 阅读1分钟

在vue开发中 安装引入axios模块包,为何要将axios挂载到Vue的原形上并配置?

// 引入axios
import axios from 'axios'
// 全局配置axios的请求根路径
axios.defaults.baseURL = 'http://www.luohua163.top:8080'
// 不用在每个组件中再导入axios

// 把axios挂载到 Vue.prototype上 供每个 .vue 组件的实例直接使用
 Vue.prototype.$http = axios
 
// 今后 在每个 .vue组件中要发起请求 直接调用 this.$http.xxx
// 但是 把axios 挂载到vue原形删 有一个缺点 不利于 API 接口的复用!!!!
} 

使用情况举例:

// 挂载到实例上 可以直接通过this访问 
astnc postInfo () {
const {data: res} = await this.$http.post('/api/post',{name: '落花',age: 18})
console.log(res)

结论:

总之,在Vue中将axios 挂载到 Vue的原型上后 其他 .vue 组件可以直接通过this 访问
使用这个方法进行相应的ajax请求 this.$http.get

但是这样将ajax直接挂载到原型上也有缺点: 那就是无法实现API接口的复用!!!