引入下axios,然后对axios做下基本的封装。然后就是mock数据的方式说一下,以及在项目中使用的mock方式。
1、安装
axios
是什么就不说了吧,你应该已经很熟了,就直接安装吧。
$ npm install axios --save
2、axios封装
- 然后我们简单的在
src/utils/request.js
中简单的进行了一下axios封装。
import axios from 'axios'import { Toast, Dialog } from 'vant'// 创建一个axios实例const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // withCredentials: true, timeout: 5000})// 请求拦截器service.interceptors.request.use( config => { // 这里做些发送请求前的事情 return config }, error => { console.log(error) return Promise.reject(error) })// 响应拦截器service.interceptors.response.use( response => { const res = response.data // 与后端约定的错误码 if (res.code !== 200) { Toast.fail(res.message) return Promise.reject(new Error(res.message || 'Error')) } else { return res } }, error => { console.log('err' + error) Toast.fail(error.message) return Promise.reject(error) })export default service
-
对于环境的不同判断,比如开发环境、灰度环境、线上环境等等在
@vue/cli3.x
中通过新建一个.env.[xxx]
的文件来维护-->环境变量和模式 -
比如说我们上文中的axios实例中的
baseURL:process.env.VUE_APP_BASE_API
,取的就是不同环境下的所定义的值。
// .env.development# base apiVUE_APP_BASE_API = '/dev-api'
// .env.production# base apiVUE_APP_BASE_API = '/prod-api'
3、使用
- 以我们首页中获取banner数据为例(关于数据mock请浏览下一节内容),首先我们新建了一个
src/api
文件夹用于维护接口,在该文件夹下定义了一个getBanner请求方法:
import request from '@/utils/request'export function getBanner() { return request({ url: '/home/banner', method: 'get' })}
- 然后我们在首页home.vue中引入并使用它:
import { getBanner } from '@/api/home'getBanner() { getBanner().then(res => { this.banner = res.entry })}
- 这就是axios从安装、到封装、到api接口维护、到请求的一个大体的流程了。
- 关于数据的mock看下一节。
文章转载于:https://www.jianshu.com/p/98e8cc9f835d
原著是一个有趣的人,若有侵权,请通知删除
还没有人抢沙发呢~