首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用CLI创建新项目后正确导入vue 3中的Axios?

如何在使用CLI创建新项目后正确导入vue 3中的Axios?
EN

Stack Overflow用户
提问于 2020-10-08 19:43:18
回答 3查看 48.5K关注 0票数 23

我创建了一个新项目,使用:

代码语言:javascript
运行
复制
vue create hello-world

生成一个包含HelloWorld.vueapp.vuemain.js (等)的新项目文件。

现在,我按照docs Npm vue-axios安装了Axios

代码语言:javascript
运行
复制
npm install --save axios vue-axios

我在main.js文件中导入了Axios:

代码语言:javascript
运行
复制
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'

现在我遇到了一个我不明白的问题。VueAxios文档说,您只需这样使用它:

代码语言:javascript
运行
复制
const app = Vue.createApp(...)
app.use(VueAxios, axios)

但是在Vue 3中创建app的方式是不同的。我认为这就是问题的根源:

代码语言:javascript
运行
复制
createApp(App).mount('#app')

那么,如何正确导入axios呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-09 03:52:34

createApp(App).mount('#app')实际上与以下内容相同:

代码语言:javascript
运行
复制
import Vue from 'vue'
const app = Vue.createApp(App)
app.mount('#app')

// or
import { createApp } from 'vue'
const app = createApp(App)
app.mount('#app')

因此,在Vue Axios的文档之后,只需插入用于app.use()的行

代码语言:javascript
运行
复制
import { createApp } from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'

const app = createApp(App)
app.use(VueAxios, axios) // 
app.mount('#app')

你也可以像这样把它链起来:

代码语言:javascript
运行
复制
createApp(App).use(VueAxios, axios).mount('#app')

演示

票数 50
EN

Stack Overflow用户

发布于 2020-10-08 20:19:27

您只能导入axios并将其定义为全局属性

使用bundler的 (vue cli,vite或webpack .):

代码语言:javascript
运行
复制
import { createApp } from 'vue'
import axios from 'axios'
const app = createApp(...)
app.config.globalProperties.axios=axios

然后在任何子组件中使用它,如:

Option

代码语言:javascript
运行
复制
this.axios.get(...)

组合api中,我建议直接导入它,例如:

代码语言:javascript
运行
复制
import axios from 'axios'

const MyComponent = {
  setup() {
    //use axios here

   .... 
  }
}

或者使用来自useAxiosvueuse (vue组合实用程序):

代码语言:javascript
运行
复制
import { useAxios } from '@vueuse/integrations/useAxios'
...
 setup() {
   const { data, isFinished } = useAxios('/api/posts')
 }
票数 28
EN

Stack Overflow用户

发布于 2022-06-02 07:37:11

这在VueJS 3上对我起了作用。

代码语言:javascript
运行
复制
npm i vue-axios

import { createApp } from "vue";
import axios from 'axios'
import VueAxios from 'vue-axios'

const app = createApp(App);
app.use(VueAxios)
app.use(axios)

app.mount("#app");


this.axios.get(api).then((response) => {
    console.log(response.data)
})

Doc链接:https://www.npmjs.com/package/vue-axios

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64269587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档