### axios 二次封装
- 新建目录 network
> network/request.js
```js
import axios from "axios"
import {Toast} from "vant"
import router from "router/index"
export function request(config) {
// 状态码 https://www.showdoc.com.cn/1207745568269674/6090117842667636
const codeMsg = {
200: '(成功)服务器已成功处理了请求。',
201: '(已创建)请求成功并且服务器创建了新的资源。',
204: '(无内容)服务器成功处理了请求,但没有返回任何内容。',
301: '(永久移动)请求的网页已永久移动到新位置。',
302: '(临时移动)服务器目前从不同的位置响应请求。',
400: '(错误请求)服务器不理解请求的语法。',
401: '(未授权)请求要求身份验证。',
403: '(禁止)无权限, 服务器拒绝请求。',
404: '(未找到) 服务器找不到请求的资源',
408: '(超时) 请求超时',
422: '(验证错误) 请求参数未通过验证',
429: '(被限制)请求次数过多',
500: '(服务器内部错误) 服务器遇到错误,无法完成请求。',
501: '(尚未实施) 服务器不具备完成请求的功能。',
502: '(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。',
503: '(服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。',
504: '(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。',
505: '(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。'
}
// 创建实例
const instance = axios.create({
baseURL: 'https://api.shop.eduwork.cn/',
timeout: 5000
})
// 请求拦截
instance.interceptors.request.use(config => {
// 携带 token https://www.showdoc.com.cn/1207745568269674/6094279351627422
const token = window.localStorage.getItem('token')
token && (config.headers.Authorization = `Bearer ${token}`)
return config
}, err => {})
// 响应拦截
instance.interceptors.response.use(res => res, err => {
// 处理错误信息
const {response} = err
if (response && response.status) {
const {status} = err.response
if (401 === status) {
Toast.fail('请先登录')
router.push({name: 'Login'})
} else if (422 === status) {
Toast.fail(response.data.errors[Object.keys(response.data.errors)[0]][0])
} else {
Toast.fail(codeMsg[status] || response.statusText)
}
} else if (!response) {
Toast.fail('网络异常')
}
})
return instance(config)
}
```
- 项目介绍
- 项目初始化
- 安装脚手架
- 创建项目安装组件
- 导入和使用组件
- 配置选项
- 配置别名
- 自动导入
- 接口封装
- 接口地址
- axios 二次封装
- 封装网络请求
- 首页接口
- 商品接口
- 授权接口
- 用户接口
- 购物车接口
- 订单/支付接口
- 收藏接口
- 地址管理接口
- 初始化页面
- 创建初始页面
- 状态管理
- 注册路由
- 静态资源
- 项目开发
- 公用组件
- 商品列表
- 支付轮询
- 回到顶部
- 顶部 NavBar
- 轮播图
- 底部 TabBar
- 入口页
- 首页
- 分类
- 商品详情
- 个人中心
- 我的
- 登录
- 注册
- 账号管理
- 购物车
- 订单
- 我的订单
- 订单预览
- 订单详情
- 我的收藏
- 地址
- 地址管理
- 地址编辑
- 关于我们
- 注意事项
- Tabs 上拉加载
- 下拉上拉重复请求
- 地址管理选中默认迟延
- 地址编辑地区码回显
- 结束