Vue项目中axios的二次封装

Vue 项目中 axios 的二次封装

Vue 项目使用过程中一般会对 axios 进行二次封装, 以期在合适的时机处理一些全局的需求, 比如常见的 请求拦截器 和 响应拦截器. 接下来简单聊聊具体的操作步骤.

1, 下载 axios 模块

执行以下指令:


import axios from 'axios';

2, 封装

在 src 文件夹下创建 api 文件夹, 并创建 index.js、axios.js 和 users.js 文件.

index.js 文件的作用的将当前项目中所有的 api 文件统一导入并导出, 这样将来在使用时, 外界直接直接 import 这个 api 的 index.js 文件就行, 即使后期有位置上的变化, 也不用在每个 api 的引入文件中修改, 方便管理和维护.

axios.js 文件的目的就是 axios 的二次封装.

users.js 文件中仅封装了与 /users 相关的 api.

后期还可以根据需求创建更多的 xxx.js 文件来做 api 的封装管理.

3, axios.js 文件

接下来聊聊关于 axios 的二次封装, 废话不多说, 直接上代码


import axios from 'axios';

// 基本配置
const instance = axios.create({
   
  baseURL: 'http://localhost:3000/', // 根据实际情况修改API地址
  timeout: 5000 // 设置超时时间,单位为ms
});

// 请求拦截器
instance.interceptors.request.use(config => {
   
  config.headers['Authorization'] = localStorage.getItem('token'); // 设置请求头部分,这里举例使用了localStorage存储的token作为身份标识
  return config;
}, error => {
   
  console.log(error);
  return Promise.reject(error);
});

// 响应拦截器
instance.interceptors.response.use(response => {
   
  const data = response.data;
  if (data && data.code !== 200) {
    // 根据接口返回的状态码判断是否有错误
      alert(`Error code ${
     data.code}: ${
     data.message}`); // 自定义错误提示
      return Promise.reject(new Error(data.message));
  } else {
   
      return data;
  }
}, error => {
   
  console.log(error);
  return Promise.reject(error);
});

export default instance;

4, users.js 文件

示例代码如下:

import axios from "./axios";

const users = {
   
  getUser: (params) => {
   
    return axios.get(`/users`, {
    params });
  },
}

export default users;

5, index.js 文件

示例代码如下:

import users from "./users";

export default {
   
  ...users,
}

接下来就可以在具体的 .vue 文件中导入 api 来调用了.

本章完!

相关推荐

  1. Vue项目axios封装

    2024-01-16 10:50:01       43 阅读
  2. Vue状态机和axios封装

    2024-01-16 10:50:01       44 阅读
  3. vueaxios进行封装

    2024-01-16 10:50:01       29 阅读
  4. vue3 axios封装

    2024-01-16 10:50:01       37 阅读
  5. axios封装封装

    2024-01-16 10:50:01       42 阅读
  6. 关于axios封装

    2024-01-16 10:50:01       40 阅读
  7. 新手基于axios 封装

    2024-01-16 10:50:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-16 10:50:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-16 10:50:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-16 10:50:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-16 10:50:01       20 阅读

热门阅读

  1. Pyramid

    2024-01-16 10:50:01       33 阅读
  2. 自适应动量因子梯度下降BP神经网络的人口预测

    2024-01-16 10:50:01       37 阅读
  3. Mac command not found

    2024-01-16 10:50:01       38 阅读
  4. 纯前端导出,设置导出xlsx文件样式xlsx-js-style

    2024-01-16 10:50:01       39 阅读
  5. C++学习笔记(二十二)

    2024-01-16 10:50:01       28 阅读
  6. T527Android13关机时黑屏无提示问题

    2024-01-16 10:50:01       34 阅读
  7. Android 13 关闭相册的编辑功能

    2024-01-16 10:50:01       32 阅读
  8. 一个SqlSugar实际案例

    2024-01-16 10:50:01       32 阅读
  9. 设置 SSH 通过密钥登录

    2024-01-16 10:50:01       35 阅读