引入下axios,然后对axios做下基本的封装。然后就是mock数据的方式说一下,以及在项目中使用的mock方式。
axios
是什么就不说了吧,你应该已经很熟了,就直接安装吧。$ npm install axios --save
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]
的文件来维护-->环境变量和模式baseURL:process.env.VUE_APP_BASE_API
,取的就是不同环境下的所定义的值。// .env.development
# base api
VUE_APP_BASE_API = '/dev-api'
// .env.production
# base api
VUE_APP_BASE_API = '/prod-api'
src/api
文件夹用于维护接口,在该文件夹下定义了一个getBanner请求方法:import request from '@/utils/request'
export function getBanner() {
return request({
url: '/home/banner',
method: 'get'
})
}
import { getBanner } from '@/api/home'
getBanner() {
getBanner().then(res => {
this.banner = res.entry
})
}