vue中axios封装思路

第一步安装

npm install axios; // 安装axios

第二步引入
我会在项目的src目录中,新建一个http文件夹,在里面新建一个request.js和一个api.js文件以及port.js。request.js文件用来封装我们的axios,api.js用来统一管理我们的接口,port.js管理我们请求的路径。

// 在request.js中引入axios
import axios from 'axios'; // 引入axios

设置接口请求前缀

// 环境的切换
if (process.env.NODE_ENV == 'development') {
	axios.defaults.baseURL = 'https://www.xx.com';}
else if (process.env.NODE_ENV == 'debug') {
	axios.defaults.baseURL = 'https://www.xx.com';
}
else if (process.env.NODE_ENV == 'production') {
	axios.defaults.baseURL = 'https://www.xxx.com';
}

设置请求超时

axios.defaults.timeout = 3000

拦截器

请求拦截:我们在发送请求前可以进行一个请求的拦截,为什么要拦截呢,我们拦截请求是用来做什么的?我们可以在请求被发送之前进行一个拦截,如根据状态码判断登录状态、授权等。

// 请求拦截
axios.interceptors.request.use(data => {
  console.log('请求拦截', data)
  return data
// eslint-disable-next-line prefer-promise-reject-errors
}, _error => Promise.reject('请求错误'))

响应拦截:响应拦截器挺好理解,就是服务器返回给我们的数据,我们在拿到之前可以对他进行一些处理。如果返回的状态码为200,说明接口请求成功,可以正常拿到数据,否则的话抛出错误。

// 响应拦截
axios.interceptors.response.use(data => {
  console.log('响应拦截', data)
  return data
// eslint-disable-next-line prefer-promise-reject-errors
}, _error => Promise.reject('响应错误'))

port.js:保存路径文件

const storagePort = {
  // 获取用户信息接口
  userInfoPort: '/api/xxx/userInfo',
  // 获取课程信息接口
  courseInfo: '/api/xxx/courseInfo/',
  // 获取评论接口
  comment: '/api/xxx/courseComment'
}
// 导出携带接口对象
export default storagePort

api.js

import network from './request'
// 接口文件
import port from './port'

// get非携带参数请求
export function getVeryTakeJoin () {
  return network({
    url: port.userInfoPort,
    method: 'get'
  })
}
// get携带参数请求
export function getTakeJoin (info) {
  return network({
    url: port.courseInfo + `${Object.keys(info)[0]}=${info.basis_id}`,
    method: 'get'
  })
}
// post携带参数请求
export function postComment (info) {
  return network({
    url: port.comment,
    method: 'post',
    data: info
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值