时间: 2020-08-23|47次围观|0 条评论

引入下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

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《axios的封装与请求
   

还没有人抢沙发呢~