安装axios
1 | npm config set registry https://registry.npm.taobao.org # 设置成淘宝镜像源 |
封装网络请求
基础版
参考链接: axios请求封装
1 | import axios from "./axios.js"; |
进阶版
参考链接: vue-admin-template
在实际开发中,我们可能需要:
- 开发环境与生产环境配置不同的base api
- 在响应拦截器中统一处理异常的响应,并通知用户
配置不同的base api
在vue项目根目录下创建文件 .env.development
与.env.production
在通过npm run dev
启动项目时,node会读取.env.development
文件中的环境变量
在通过npm run build
构建项目时,node会读取.env.production
文件中的环境变量
1 | # .env.development |
1 | # .env.production |
在创建网络请求时,可以通过process.env.VUE_APP_BASE_API
获取配置的api
1 | import axios from 'axios' |
也可以通过process.env.NODE_ENV
自行判断环境选择使用的api
1 | const server = axios.create({ |
拦截器中处理异常
用到了element-ui中的Message组件发送消息,需要提前安装
1 | npm i element-ui -S |
1 | // request.js |
完整代码
1 | // request.js |