vue记录---axios使用

四、axios使用

1)安装:
cnpm i axios -S
2)封装
// 文件路径:src/config/request.js
import Axios from 'axios';

// 创建Axios实例
const requests = Axios.create({
  baseURL: "/api", // 基础路径
  timeout: 5000 // 超时时长
})

// 请求拦击
requests.interceptors.request.use((config) => {
  return config;
})

// 响应拦截
requests.interceptors.response.use((res) => {
  return res.data;
}, (err) => {
  // 终结promise链
  return Promise.reject(new Error("请求失败!"));
})

export default requests;
3)代理
// vue.config.js
module.exports = {
  // 关闭eslint校验
  lintOnSave: false,
  // 代理
  devServer: {
    proxy: {
      '/api': {
        target: 'http://39.98.123.211', // 代理目标路径
        // pathRewrite: { '^/api': '' }, // 重写/api
      },
    },
  },
}

4)使用
// src/api/index.js
import requests from '@/config/request';

export const categoryList =  () => {
  return  requests({
    url: "/product/getBaseCategoryList",
    method: "get",
  })
}
5)配合nprogress进度条插件使用
// src/config/request.js
// 引入nprogress进度条插件
import nprogress from 'nprogress';
// 引入nprogress进度条样式
import "nprogress/nprogress.css"

// 请求拦击
requests.interceptors.request.use((config) => {
  // 开启进度条
  nprogress.start()
  return config;
})

// 响应拦截
requests.interceptors.response.use((res) => {
  // 结束进度条
  nprogress.done()
  return res.data;
}, (err) => {
  // 终结promise链
  return Promise.reject(new Error("请求失败!"));
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容