Vue 封装API axios二次封装步骤
2023-09-11 14:16:33 时间
api的封装主要的目的就是:在帮助我们简化代码和后期的更新维护,请求拦截器、响应拦截器、响应拦截器可以再发送请求之前可以处理一些业务、响应拦截器,当服务器返回以后,可以处理一些事情。
使用步骤:
1.安装axios npm i --save axios
1.在src文件夹下新建api文件夹,api下新建request.js
3.api下新建index.js
4.vue.config.js中添加跨域
request.js内容
// 对于axios进行二次封装
import axios from "axios"
// 1.利用axios对象的方法create,去创建一个axios实例
// 2.request就是axios,只不过稍微配置一下
const requests = axios.create({
//配置对象
//基础路径,发请求的时候,路径当中会出现api
baseURL: "/api",
// 代表请求超时的时间5S
timeout: 5000,
})
//请求拦截器:在发请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情
request.interceptors.request.use((config) => {
//config:配置对象,对象里面有一个属性很重要,header请求头
return config;
})
//响应拦截器
requests.interceptors.response.use((res) => {
//成功的回调函数:服务器相应数据回来以后,响应拦截器可以检测到,可以做一些事情
return res.data;
}, (error) => {
//响应失败的回调函数
return Promise.reject(new Error('faile'));
});
//对外暴露
export default requests;
vue.config.js内容
module.exports = {
//关闭eslint
lintOnSave: false,
//代理跨域
devServer: {
proxy: {
'/api': {
target: 'http://39.98.123.211',
}
}
}
}
index.js内容
//当前这个模块:API进行统一管理
import requests from './request';
// 三级联动接口
export const reqCategoryList = prarms => {
return request({
url: "/device/list?productId=",
method: "get",
data: prarms
});
};
export const distributionAdd = prarms => {
return request({
url: "/project/main/add",
method: "post",
data: prarms
});
};
export const distributionBus = prarms => {
return request({
url: "/device/list?productId=" + 1,
method: "get",
data: prarms
});
};
// 使用
// addCommercialInfo(this.form)
// .then((res) => {
// if (res.code == 200) {
// this.getList();
// } else {
// alert(res.mag)
// }
// })
// .finally(() => {
// this.buttonLoading = false;
// });
相关文章
- (尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)
- vue - 前置工作 - 安装vsCode以及插件
- 29 Vue中的Non-props使用$attrs & inheritAttrs
- 【css/vue】Vue组件中对body操作样式的一种解决方案
- 【Vue】错误 : 无法加载文件 C:UsersAdministratorAppDataRoamingnpmvue.ps1,因为在此系统上禁止运行脚本的解决方法
- 【Vue】Vue组件或页面中查看当前Vm对象的方法
- 【Vue】单文件的组件(.vue)代码实例
- Vue - PC 端列表下拉页面触底加载分页数据,监听浏览器屏幕触底事件,类似uni-app微信小程序的onReachBottom()页面触底生命周期函数(监听屏幕触底事件,实现懒加载效果)
- vue获取头部url的id
- 【面试Vue全家桶】vue前端交互模式-es7的语法结构?async/await
- (6)打鸡儿教你Vue.js
- webpack搭建vue项目开发环境【文档向学习】
- vue引入mock的json数据
- vue---axios的封装
- VUE-015-解决 vue install 引发的 failed Error: not found: python2 问题
- Vue和微信小程序区别
- vue组件之this指向问题
- vue学习笔记六:Jquery VS Vue之网络请求明细对照
- Vue脚手架(vue-cli)搭建和目录结构详解
- Vue学习第13天——vue中使用自定义插件
- 关于vue的页面跳转后,如何每次进入页面时都能获取后台数据
- 手写Vue (1) 数组劫持