vue项目中封装axios方法是什么?
Admin 2021-10-22 群英技术资讯 1783 次浏览
本文给大家分享的是关于vue项目中封装axios的内容,对于实现封装axios下面有详细的介绍及示例代码,需要的朋友可以参考,接下来就跟随小编来学习一下吧。
在使用Vue.js框架开发前端项目时,会经常发送ajax请求服务端接口,在开发过程中,需要对axios进一步封装,方便在项目中的使用。
在本地创建Vue项目,目录结构如下:
- public 静态资源文件
- src
|- assets 静态资源目录
|- components 公共组件目录
|- http axios封装目录
|- router 路由管理目录
|- store 状态管理目录
|- views 视图组件目录
|- App.vue 根组件
|- main.js 入口文件
- package.json npm配置文件
在Vue项目中创建 http目录 作为axios的管理目录,在 http目录 下两个文件,分别是
/http/api.js文件代码如下:
export default {
'users_add': '/users/add',
'users_find': '/users/find',
'users_update': '/users/update',
'users_delete': '/users/delete'
}
/http/index.js文件代码如下:
import axios from 'axios'
import api from './api'
//创建axios实例对象
let instance = axios.create({
baseURL: 'http://localhost:3000', //服务器地址
timeout: 5000 //默认超时时长
})
//请求拦截器
instance.interceptors.request.use(config=>{
//此处编写请求拦截的代码,一般用于弹出加载窗口
console.log('正在请求……')
return config
},err=>{
console.error('请求失败',err)
})
//响应拦截器
instance.interceptors.response.use(res=>{
//此处对响应数据做处理
console.log('请求成功!')
return res //该返回对象会传到请求方法的响应对象中
},err=>{
// 响应错误处理
console.log('响应失败!',err)
// return Promise.reject(err);
})
//封装axios请求方法,参数为配置对象
//option = {method,url,params} method为请求方法,url为请求接口,params为请求参数
async function http(option = {}) {
let result = null
if(option.method === 'get' || option.method === 'delete'){
//处理get、delete请求
await instance[option.method](
api[option.url],
{params: option.params}
).then(res=>{
result = res.data
}).catch(err=>{
result = err
})
}else if(option.method === 'post' || option.method === 'put'){
//处理post、put请求
await instance[option.method](
api[option.url],
option.params
).then(res=>{
result = res.data
}).catch(err=>{
result = err
})
}
return result
}
export default http
在main.js入口文件中引入封装好的 /http/index.js 文件,示例代码如下:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import http from './http'
Vue.config.productionTip = false
Vue.prototype.$http = http
Vue.use(Elementui)
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
在App.vue根组件中测试axios请求,示例代码如下:
<template>
<div>
<button @click="getDate">发送请求</el-button>
</div>
</template>
<script>
export default {
methods: {
getDate(){
this.$http({
method: 'get',
url: 'users_find'
}).then(res=>{
console.log(res)
})
}
}
}
</script>
这里需要有 http://localhost:3000/users/find 接口,不然请求会失败!
到此,在Vue项目中就完成了简单的axios封装,当然,大家也可以根据自己的实际需求对axios进行封装,本文方法仅供参考,需要的朋友可以了解看看,希望对大家学习了解封装axios有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
tab栏的实现相信大家都比较熟悉了,这篇文章给大家分享的是用JavaScript实现tab栏的方法,本文有详细的思路及代码介绍,对新手学习用JavaScript实现tab栏有一定的帮助,需要的朋友可以参考。
React路由传参方法有哪些?我们知道React中传参方式有很多,通过路由传参的方式也是必不可少的一种。因此,这篇文章就给大家分享一下React路由传参方法及实现,感兴趣的朋友就继续往下看吧。
JS怎样实现在数组特定索引插入元素?其实我们开发程序对很多功能都有接触的,而使用数组实现插入元素其实并没有那么难
JS中浮点数转整数有哪些方法?JavaScript中,想要实现浮点数转整数,可以使用的方法有很多,例如使用parseInt()函数、利用位运算符“|”、利用位运算符“^”等等,具体怎样实现呢?下面我们看具体的示例,需要的朋友可以参考。
目录表单校验背景常规写法:策略模式介绍真实世界类比更广义的“算法”策略模式的组成利用策略模式改写策略模式优缺点优点:缺点:策略模式适合应用场景总结表单校验背景假设我们正在编写一个注册页面,在点击注册按钮之时,有如下几条校验逻辑:用户名不能为空密码长度不能少于6位手机号码必须符合格式常规写法:const form = d
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008