当前位置: 移动技术网 > IT编程>开发语言>JavaScript > vue axios的封装大全

vue axios的封装大全

2020年07月23日  | 移动技术网IT编程  | 我要评论

1.安装

npm install axios --save

2.新建http.js,封装拦截器以及多种请求方式

import axios from 'axios';
import { Message } from 'element-ui';

// 请求拦截器
axios.interceptors.request.use(
  config => {
    //发送请求前需要做什么,一般检查token
    return config;
  },

  error => {
   // 对请求错误做些什么
    return Promise.reject(error);
  }
)

// 响应拦截器
axios.interceptors.response.use(
  response => {
    // 对响应数据做点什么,一般是判断状态码,进行一些逻辑处理
    return response;
  },
  error => {
    // 对响应错误做点什么
    return Promise.reject(error) ;
  };
)

//GET请求
export const $get = function (url, params) {
  return new Promise((resolve, reject) => {
    axios({
      method: 'get',//请求方式
      url: url,         //请求url
      headers:...   //请求头设置,
      params,      //请求参数
      baseURL: ...//基础地址,将自动加在 `url` 前面
    }).then(res => {
      resolve(res)
    }).catch(error => {
      reject(error)
    })
  })
}

//POST请求
export const $post = function (url, param) {
  return new Promise((resolve, reject) => {
    axios({
      method: 'post',
      url: url,
      headers: ...,
      data: param ? param : "", //数据体
      baseURL: ...
    }).then(res => {
      resolve(res)
    }).catch(error => {
      reject(error)
    })
  })
}

//DELETE请求
export const $delete = function (url, params) {
  return new Promise((resolve, reject) => {
    axios({
      method: 'delete',
      url: url,
      headers: ...,
      params,
      baseURL: ...
    }).then(res => {
      resolve(res)
    }).catch(error => {
      reject(error)
    })
  })
}

//PUT请求
export const $put = function (url, params) {
  return new Promise((resolve, reject) => {
    axios({
      method: 'put',
      url: url,
      headers: ...,
      data: params ? params : "",
      baseURL: ...
    }).then(res => {
      resolve(res)
    }).catch(error => {
      reject(error)
    })
  })
}

3.接口的封装—新建user.js

//导入请求方式
import {
  $get,
  $post,
  $update,
  $delete
} from '../http';

//获取用户信息接口
const getUser = data => {
  return $get('/api/getUserInfo', data);
};

//其他接口类似
....
....
....

//导出接口
export default {
getUser,
...,
...
}

4.封装所有接口文件—创建index.js

//导入接口文件
import user from './user'

//导出
export default {
  user,
  ...,
  ...
}

5.axios的所有内容封装(该index.js即为下图目录结构选中的js文件)
在这里插入图片描述
目录结构
在这里插入图片描述
6.在组件中的使用

methods:{
    //方法的调用,传入数据
    getUser(){
         this.$api.user.getUser({userId:100010})
            .then(
                res=>{
                //请求结果,进行相应的逻辑处理
                },
                error=>{
                //请求失败后的逻辑处理
                })
      }
}

7 完

本文地址:https://blog.csdn.net/weixin_49257048/article/details/107467751

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网