我使用npm install axios命令安装了axios -这是我的package.json依赖项
"dependencies": {
"axios": "^0.18.0",
"bootstrap-vue": "^2.0.0-rc.11",
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},我在我的main.js文件中注册了axios。
import Vue from 'vue'
import VueRouter from 'vue-router'
import BootstrapVue from 'bootstrap-vue'
import axios from 'axios'
import App from './App'
import routerList from './routes'
Vue.use(axios)
Vue.use(BootstrapVue)
Vue.use(VueRouter)当我试图在我的组件中使用axios时,我得到了以下错误:
Uncaught ReferenceError: axios is not defined怎么解决这个问题?
发布于 2018-07-17 06:22:23
Vue.use意味着添加插件。然而,axios并不是Vue的插件,所以您不能通过use全局地添加它。
我的建议是,只有当您需要时才导入axios。但是,如果您确实需要全局访问它,您可能希望将它添加到原型中。
Vue.prototype.$axios = axios然后您可以在vue中使用axios访问this.$axios。
发布于 2018-07-17 06:20:08
解决方案1(不建议):
在main.js中,添加这一行而不是import axios from 'axios'
window.axios = require('axios');移除
Vue.use(axios)解决方案2(建议的办法):
使用window通常被认为是一种不好的做法,所以最好以以下方式使用axios:
plugins目录中创建一个名为src的文件夹。axios.js文件。我们将把所有的axios逻辑放在这里,并使用axios作为Vue插件。import ax from 'axios'
// insert all your axios logic here
export const axios = ax
export default {
install (Vue, options) {
Vue.prototype.$axios = ax
}
}src/main.js中,添加以下内容:import Vue from 'vue' // You can skip this line
import VueAxios from './plugins/axios'
Vue.use(VueAxios)现在,您可以在组件中使用axios作为this.$axios。所以有点像this.$axios.get()。
因此,您可以使用以下行导入axios:
import { axios } from '@/plugins/axios'现在,您可以在商店中直接使用axios。
或者你也可以用它作为Vuex插件:
import { axios } from '@/plugins/axios'
const axiosPlugin = store => {
store.$axios = axios
}
new Vuex.Store({
...,
plugins: [axiosPlugin]
})现在,您可以在Vuex中使用它作为this.$axios。
发布于 2019-08-20 06:08:44
使用以下命令安装axios
npm install axios --save执行上述命令之后,导入如下所述:
import axios from 'axios'https://stackoverflow.com/questions/51374367
复制相似问题