在 Vuejs 中全局导入 Axios 方法

新手上路,请多包涵

这是我的 ~/plugins/axios.js 文件:

 import axios from 'axios'

let api = axios.create({
  baseURL: 'http://localhost:8000/api/v1/'
})

export default api

当我想在每个组件中使用 axios 时,我必须写下这一行:

import api from '~/plugins/axios

我如何在全局范围内配置它,只需编写 $api 代替?

原文由 KitKit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 809
2 个回答

您可以在 main.js 文件中创建一个插件并像这样使用它(如果您使用的是 vue-cli 之类的东西)

 import axios from 'axios'

Vue.use({
    install (Vue) {
    Vue.prototype.$api = axios.create({
      baseURL: 'http://localhost:8000/api/'
    })
  }
})

new Vue({
    // your app here
})

现在,您可以在每个组件方法上执行 this.$api.get(...)

在此处阅读有关 Vue 插件的更多信息: https ://v2.vuejs.org/v2/guide/plugins.html

提供/注入也可以是一个选项: https ://v2.vuejs.org/v2/api/#provide-inject

原文由 Frondor 发布,翻译遵循 CC BY-SA 4.0 许可协议

浏览器中有一个可用的窗口对象。您可以根据自己的要求积极利用它。

在 main.js 文件中

import axiosApi from 'axios';

const axios = axiosApi.create({
    baseURL:`your_base_url`,
    headers:{ header:value }
});

//Use the window object to make it available globally.
window.axios = axios;

现在在你的 component.vue

 methods:{
    someMethod(){
        axios.get('/endpoint').then(res => {}).catch(err => {});
    }
}

这基本上是我在项目中全局使用 axios 的方式。此外,这也是 Laravel 使用它的方式。

原文由 Viral Patel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题