vue中封装axios 以及api 统一管理

2023-05-16

目录

      • 一、安装axios
      • 二、创建文件夹
      • 三、封装axios
          • 1. 引入axios
          • 2. 引入vuex
          • 3. 引入vant
          • 4. 引入我们的环境变量
          • 5.创建axios实例
          • 6. 添加请求拦截
          • 7. 响应拦截
          • 8. 导出封装的axios函数
      • 四、api统一管理
          • 1.引入我们封装的axios
          • 2.使用async/await进行请求优化
          • 3.导出
      • 五、使用

一、安装axios

npm install axios --save-dev

二、创建文件夹

在根目录的src中创建一个http文件夹,用来存放我们封装的接口。
在http文件夹中创建request.js专门用来封装,api.js专门用来放置我们的接口请求。

三、封装axios

1. 引入axios
      import axios from “axios”;
2. 引入vuex
      import store from “@/store/index”;
3. 引入vant
      import { Toast } from “vant”;
4. 引入我们的环境变量
      import baseUrl from “@/config/index”;
5.创建axios实例
      const instance = axios.create({
	      // axios.create 创建axios实例
          timeout: 5000,
          // 如果请求超过事件,就放弃这个请求
          baseUrl
          // 域名
       })
6. 添加请求拦截

使用 axios实例.interceptors.request.use(成功回调,失败回调);
我们可以在请求拦截中开启loading动画,判断用户是否登录,以及携带token

    instance.interceptors.request.use(config => { // config 就是我们一些请求的配置
    // 成功回调
    Toast.loading({
        message: '加载中...',
        forbidClick: true,
        loadingType: 'spinner',
    });
    // vant loading 动画
    if (store.state.token) {
    // vuex中的token是否是空,如果不为空就设置请求头,携带token
        config.headers.Authorization = store.state.token;
    }
    return config;
    // 一定要返回config,否则报错
}, error => {
    // 失败回调
    return Promise.reject(error);
    // 失败返回一个 Promise对象
})
7. 响应拦截

使用 axios实例.interceptors.response.use(成功回调,失败回调);
我们在响应拦截中,可以关闭loading动画,判断返回的状态码来做响应的操作

instance.interceptors.response.use(response => { // response 服务器返回的数据
    // 成功回调
    Toast.clear();
    return response;
    // 必须返回有返回值
}, error => {
    // 失败回调
    return Promise.reject(error);
    // 必须有返回值
})
// 响应拦截
8. 导出封装的axios函数
export default (url, method, params) => {
// url请求地址
// method 请求方式
// params 参数
    return instance({
    // 返回我们的axios实例
        url:url,
        method:method,
        params:params,
    }).then(res => {
    // res 我们后端返回的数据
        if (res.status >= 200 && res.status < 300) {
        // 如果我们返回的数据状态码为200-300之间就是成功
            return res;
        } else {
            return Promise.reject(res.data);
            // 失败返回一个Promise对象
        }
    }).catch(err => {
        return Promise.reject(err);
        // 请求失败返回一个Promise对象
    })
}

四、api统一管理

1.引入我们封装的axios

import http from “./request”

2.使用async/await进行请求优化
async function getIndex(obj) {
    let res = await http('url',"get",{id:1});
    // 我们使用await等待请求结果出来
    return res;
    // 返回这个结果
}
// 比如这是我们主页的数据
// 可以写多个
3.导出
export {
    getIndex,
}

注意:导出多个的时候只能使用export,导出的时候函数中间使用逗号隔开

五、使用

比如我们在主页要使用这个接口

<template>
  <div class="home">
  </div>
</template>

<script>
import { getIndex } from "@/http/api";
// @表示我们的 src文件夹
// 首先我们需要引入响应的接口函数,使用解构赋值的方式
// 当导入多个的时候,函数名之间使用逗号隔开
export default {
  data() {
    return {};
  },
  mounted() {
    getIndex().then((res) => {
    // 调用函数即可
    // res就是我们的数据
      console.log(res);
    }).catch(err=>{
		console.log(err)
		// err是我们的报错
	});
  },
};
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中封装axios 以及api 统一管理 的相关文章

  • Node.js 16 生命周期 结束日期提前

    将 Node js 16 的生命周期终止日期更改为 2023 年 9 月 11 日 概括Summary为什么 xff1f Why 我们评估了以下选项 We have evaluated the following options 概括 No
  • ubuntu系统用xshell远程连接

    1 在cmd窗口执行任何命令时请先登录管理员权限 xff08 将可避免很多问题 xff09 命令 xff1a sudo su xff08 回车然后输入密码 xff09 2 设置软件下载地址 xff08 推荐使用 阿里云服务器 xff09 3
  • 用VS进行图像处理

    一 1 在Windows下搭建VS 43 OpenCV平台 xff1a 2 修改名称 3 选择基于对话框 4 生成工程项目 xff0c 把自动生成的控件删除 xff0c 找到右边工具箱 xff0c 添加两个图片控件和一个按钮控件 5 分别更
  • 笔记(STM32篇)day1——工程创建、操作寄存器点灯

    目录 一 STM32F103VET6 二 创建工程 1 主要文件 2 生成文件 三 操作寄存器点灯 前言 这一年 xff0c 从调剂到各种找工作面试 去实习 xff0c 感受总结下来就是 出走半生 xff0c 归来仍是萌新 xff0c 作为
  • 网络服务——解析OSI七层模型及各层工作原理

    文章目录 一 OSI是什么 xff1f 二 OSI七层模型讲解1 七层结构的概念 xff1a 2 了解数据的传输协议 xff1a 三 OSI模型与TCP IP模型的比较四 TCP IP协议族的组成 xff1a 1 应用层 xff1a 2 传
  • Ubuntu系统安装配置arm-gcc交叉编译器

    下载好linux arm gcc压缩包 xff08 这里使用arm gcc版本为4 6 4 x86 64 xff09 注 xff1a 如果是VMware虚拟机要先安装VMware Tools xff0c 再将arm gcc压缩包导入虚拟机中
  • PTA数据库填空题

    检索学习全部课程的学生姓名 Sno Cno Cno 查询学生95001的姓名和所在系 Sno 61 39 95001 39 S 检索至少选修课程号为C2或C4的学生学号 CNO 61 39 C2 39 V SC 检索至少选修课程号为C2和C
  • python求列表最大值,最小值,和

    问题描述 给出n个数 xff0c 找出这n个数的最大值 xff0c 最小值 xff0c 和 输入格式 第一行为整数n xff0c 表示数的个数 第二行有n个数 xff0c 为给定的n个数 xff0c 每个数的绝对值都小于10000 输出格式
  • Ubuntu从16.04升级到18.04

    文章目录 起因具体步骤1 首先 xff0c 需要完全卸载ROS2 然后 xff0c 使用下列命令更新当前系统3 最后 xff0c 升级系统 起因 最近接手一台16 04Ubuntu的电脑 xff0c 界面操作很不习惯 xff0c 考虑升级到
  • 计算机网络 思科模拟器进行OSPF路由协议实验

    OSPF xff08 Open Shortst Path First xff0c 开放式最短路径优先 xff09 协议是目前网络中应用最广泛的动态路由协议之一 xff0c 也属于内部网关路由协议 xff0c 能够适应各种规模的网络环境 xf
  • C语言操作符—左移右移操作符

    文章目录 1 移位操作符十进制转二进制 1 2 lt lt 左移操作符1 2 1 gt gt 左移操作符 正数1 2 2 gt gt 左移操作符 负数 1 3 gt gt 右移操作符 96 注意 xff1a 移位操作符的操作数只能是整数 9
  • 求最大公约数之辗转相除法

    文章目录 一 前言二 辗转相除法原理三 用C语言求最大公约数 一 前言 最大公约数为两个及其以上的整数中约数最大的一个 也称为最大公因子 xff0c 最大公因数 a xff0c b的最大公约数记为 xff08 a xff0c b xff09
  • 使用FileZilla配置FTP服务器

    在拷贝大文件的时候 xff0c 由于Windows系统限制有时会拷贝失败 xff0c FTP Server可以解决文件的传输问题 FileZilla是一个很好的免费工具 xff0c 且版本没有强制要求 FileZilla支持F TP FTP
  • VMware 安装 银河麒麟高级服务器操作系统 V10 版本教程

    VMware 安装 银河麒麟高级服务器操作系统 V10 版本教程 目录 VMware 安装 银河麒麟高级服务器操作系统 V10 版本教程 银河麒麟的前世今生 安装过程 银河麒麟的前世今生 银河麒麟 xff08 KylinOS xff09 原
  • 配置python环境变量

    首先 xff0c 我们找到python安装目录 再找到pip exe的目录 然后我们快捷键Win 43 i进入Windows设置 xff0c 在查找设置里输入编辑系统环境变量 xff0c 进入到系统属性界面 点击环境变量 xff0c 找到P
  • 百钱百鸡问题

    中国古代数学家张丘建在在他的 算经 中提出这样一个 百钱百鸡问题 xff0c 鸡翁一 xff0c 值钱五 鸡母一 xff0c 值钱三 xff0c 鸡雏三 xff0c 值钱一 xff0c 百钱买百鸡 xff0c 问有翁 xff0c 母 xff
  • ajax前台传递数组到后台

    前台发送 ajax 请求到后台 xff0c 发现直接传递数组 xff0c 后台是接收不到的 xff0c 需要 ajax 加上一个 traditional 属性
  • SQL必知必会 - 插入/更新/删除数据

    目录 一 插入数据 INSERT 1 插入行 INSERT INTO 2 从表取数 插入他表 SELECT INTO 3 插入检索出的数据 二 复制数据CREATE 三 更新数据 update 拓展 replace函数 四 删除数据 DEL
  • 动态规划矩阵连乘求最优值和最优解

    问题描述 矩阵相乘最重要的方法是一般矩阵乘积 它只有在第一个矩阵的列数和第二个矩阵的行数相同时才有意义 给定n个矩阵 xff1a A1 A2 An xff0c 其中Ai与Ai 43 1是可乘的 xff0c i 61 1 xff0c 2 xf
  • epoll源码解析翻译------说使用了mmap的都是骗子

    本文地址 https www cnblogs com l2017 p 10830391 html https blog csdn net li haoren select poll epoll这三个都是对poll机制的封装 只是select

随机推荐

  • 修改django中的querydict

    方法一 xff1a Django 中的QueryDict is immutable QueryDict copy 代码如下 xff1a param form 61 Rule ParamEditModelForm data 61 reques
  • kafka 单机配置外网无法访问

    修改配置文件 root 64 localhost config root 64 localhost config pwd root kafka 2 12 1 0 1 config root 64 localhost config root
  • Linux 网卡配置

    1 复制网卡配置文件 xff0c 更名为指定文件 root 64 bogon network scripts cd etc sysconfig network scripts root 64 bogon network scripts ro
  • 结束进程 --inux命令

    简介 本文介绍Linux根据进程名结束 xff08 杀死 xff09 进程的命令 主要有三种方法 xff1a ps 43 grepkillallpkill kill 9 96 lsof t i lt port gt 96 1 xff1a p
  • Linux command

    1 根据端口port查进程 1 根据端口port查进程 netstat nap grep port root 64 localhost Init auto netstat nap grep 7777 tcp 0 0 192 168 2 24
  • Linux pip install python 包,异常分析

    pip install python 包异常如下 xff1a WARNING Running pip as the 39 root 39 user can result in broken permissions and conflicti
  • kafka 简介

    简单介绍kafka 安装以及简单的单节点使用说明 xff0c 仅供了解 安装配置 启动验证 1 安装 下载kafka 安装包 xff0c 并解压 再次个人安装kafak 2 12 1 0 1 2 配置 配置 kafka 2 12 1 0 1
  • scp 远程复制命令介绍

    scp r 复制文件 scp P xff1a 复制指定端口号 目标 主机A 文件复制到主机B某指定目录下 实例 xff1a 将服务器 192 168 2 101 中文件夹 home bd 复制到 192 168 2 77 的目录 home
  • Django 项目迁移

    Django 项目APP Initapp 更新数据库 PS D Work Git Init Web Risk Init Init Sys gt PS D Work Git Init Web Risk Init Init Sys gt pyt
  • Xmind 转 Excel or CSV 格式的TestCase

    Xmind 脑图转 TestCase 随笔记录 1 新建Python 项目 Open Pycharm gt File gt New Project 2 下载安装包 xmind2testcase 和xmind2testlink File gt
  • 服务器蓝屏怎么回事,怎么解决?

    最近有小伙伴和我表示 xff0c 打开服务器是遇到蓝屏了 xff0c 有点慌 xff0c 咨询我有没有什么解决办法 xff0c 今天我在这边总结一下 一 服务器蓝屏原因 xff1a 1 版本冲突 2 软硬件不兼容 3 应用程序存在着BUG
  • zookeeper 集群搭建

    准备环境修改hostname 永久修改hostname root 64 bogon java hostnamectl set hostname server 247 root 64 bogon java root 64 bogon java
  • 为什么更多APP开发者选择穿山甲作为游戏变现平台?

    当前手游行业发展迅速 xff0c 游戏APP用户存量稳定 xff0c 变现价值大 而在选择游戏变现平台时 xff0c 更多开发者青睐于穿山甲平台 穿山甲平台有何优势 为什么会受到这么多APP开发者的信赖呢 穿山甲是国内领先的第三方变现平台
  • 穿山甲平台助力开发者降本增效,技术进阶

    在存量市场 xff0c 变现是开发者的头等大事 xff0c 开发者想要冲破重围 xff0c 必须要探索自我商业化道路与模式 广告变现是当下众多开发者的选择 xff0c 广告变现的路径有两条 xff1a 一 xff0c 保证广告位的填充率 二
  • Debian安装JDK-17.0.5教程

    第一步 xff1a 创建一个java文件夹 mkdir java 第二步 xff1a 打开java文件夹 cd java 第三步 xff1a 下载Linux版本的JDK xff08 jdk 17 linux x64 bin tar gz必须
  • STM32 控制LED灯 亮灭

    lcd c include 34 led h 34 void Delay uint32 t count unsigned int i for count 61 0 count i 61 500 while i void LED GPIO C
  • 树莓派import cv2 失败解决方法

    设备 树莓派4b 问题简述 xff1a 原装系统自带python3 9 2 xff0c 参考了大佬流 浪 猫的教程 超简单教你在树莓派上安装opencv xff08 二 xff09 时 xff0c 遇到了一个依赖源的安装错误 xff0c 直
  • Ansible学习笔记

    目录 1 Ansible搭建 xff08 基于CentOS 7 9 xff09 1 1 在控制节点和被控节点获取epel源 1 2 安装Ansible 2 理论 3 基础配置 3 1 Ansible发送指令的原理 3 2 Ansible配置
  • 半字符入栈的回文判定

    回文是指正读反读均相同的字符序列 xff1b 如 abba 和 abdba 均是回文 xff0c 但 good 不是回文 试写一个算法判定给定的字符序列是否是回文 xff08 提示 xff1a 将一半字符入栈 xff09 算法分析 xff1
  • vue中封装axios 以及api 统一管理

    目录 一 安装axios二 创建文件夹三 封装axios1 引入axios2 引入vuex3 引入vant4 引入我们的环境变量5 创建axios实例6 添加请求拦截7 响应拦截8 导出封装的axios函数 四 api统一管理1 引入我们封