在Vuejs中全局导入Axios方法

时间:2018-05-16 12:26:53

标签: vue.js vuejs2 axios

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

AttributeError: module 'sklearn' has no attribute 'linear_model'

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

library(flextable) myft <- regulartable( head(mtcars), col_keys = c("am", "carb", "gear", "mpg", "drat" )) # create an Rmd file ---- library(rmarkdown) rmd_name <- tempfile(fileext = ".Rmd") cat("```{r echo=FALSE}\nmyft\n```", file = rmd_name) # render as an html file ---- html_name <- tempfile(fileext = ".html") render(rmd_name, output_format = "html_document", output_file = html_name ) # get a png from the html file with webshot ---- library(webshot) webshot(html_name, zoom = 2, file = "regulartable.png", selector = "body > div.container-fluid.main-container > div.tabwid > table")

如何全局配置,只需编写$ api?

3 个答案:

答案 0 :(得分:14)

您可以创建一个插件并在main.js文件中使用它(如果你正在使用类似vue-cli的东西)

import axios from 'axios'

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

new Vue({
    // your app here
})

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

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

在 Vue 3 中将其保留在 main.js 中对我来说非常好。

import { createApp } from 'vue';
import App from './App.vue';
import axios from "axios";

const app = createApp(App);

const instance = axios.create({
    baseURL: 'https://example.com/',
  });

app.config.globalProperties.axios=instance

app.mount('#app');

并在任何组件中使用它,

this.axios.post('/helloworld', {
    name: this.name,
    age: this.age
})