axios的三层封装思想

2023-11-04

1.工具函数层

        设置默认请求地址

        设置默认超时时间

        设置默认请求拦截

        设置默认响应拦截

/**
 * ajax工具函数层
 */
import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:5000' //默认服务器地址
axios.defaults.timeout = 10000;//配置超时时间10秒

//配置请求拦截器
axios.interceptors.request.use(config => {
    //取出token 鉴权。 token相当于人的身份证 一个角色的信息 权限全部存在这个加密的字符串里面
    let token = window.localStorage.getItem('t_k');
    if (token) {
        //只要有token 所有的接口请求都会携带这个token 发给后台【后台检查token 判断你是否有当前请求的权限】
        // config.headers 请求头  请求头携带token数据 判断权限
        //authorization 字段是和后端商议的【当前项目叫authorization】
        config.headers.authorization = token;
    }
    return config
}, err => {
    return Promise.reject(err)
})

//配置响应拦截器
axios.interceptors.response.use(response => {
    return response
}, err => {
    return Promise.reject(err)
})

//暴露配置好的axios
export default axios

2.接口管理层

将接口统一到某一个文件夹/js文件中,并导出

/**
 * 用户接口模块
 * 因为使用ES6的方法对象里面的数据简写
 * 所有post参数必须是data
 * 所有get参数必须是params
 */

import request from '@/utils/request'

/* 登录接口 */
export const checkLogin = (data) => {
    return request({
        method: 'post',
        url: '/users/checkLogin',
        data
    })
}

/* 添加账号 */
export const addUser = (data) => {
    return request({
        method: 'post',
        url: '/users/add',
        data
    })
}

/* 获取用户列表 */
export const getUserList = (params) => {
    return request({
        method: 'get',
        url: '/users/list',
        params
    })
}

/* 删除账号 */
export const deleteUser = (params) => {
    return request({
        method: 'get',
        url: '/users/del',
        params
    })
}

3.组件层

导入对应的组件并使用

//引入对应的用户ajax模块函数
import { checkLogin } from '@/api/user'
//发送请求
async getData(){
   let res = await checkLogin({ ...this.formData });
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

axios的三层封装思想 的相关文章

随机推荐

  • 排序算法c语言描述---双向冒泡排序

    排序算法系列学习 主要描述冒泡排序 选择排序 直接插入排序 希尔排序 堆排序 归并排序 快速排序等排序进行分析 文章规划 一 通过自己对排序算法本身的理解 对每个方法写个小测试程序 具体思路分析不展开描述 二 通过 大话数据结构 一书的截图
  • Linux shell与expect配合完成自动打包资源并scp到另一台Linux电脑的例子

    有时我们想使用shell脚本做一些自动操作 例如ssh或scp时自动输入密码 可以使用expect工具来实现 需求 使用shell与expect混合编程 将一个文件从机器A Ubuntu16 04 中的目录mydata打包为mydata t
  • 嵌入式工程师老了怎么办_老刘工程师睡前故事5-EMC 辐射发射超标怎么办?

    老刘工程师睡前故事 EMC 辐射发射超标怎么办 今天的工程师睡前故事讲讲汽车EMC测试中辐射发射超标了怎么办 首先来聊聊辐射发射的基本知识 辐射发射英文简称RE 检测的是产品对外的辐射干扰 国际标准参考CISPR25 国标参考GBT1865
  • outlook出现"定位链接浏览器"错误的解决办法

    打开我的电脑 单击 工具 文件夹选项 文件类型 在列表中选中 无 URL 超文本传输通讯协议 单击 高级 按钮 把原来项目删除 点新建 操作名称 处输入 OPEN 用于执行操作的应用程序 处输入 C Program Files Intern
  • GIT撤销远程MERGE

    GIT撤销远程MERGE 关于GIT撤销 网上有很多教程 基本都提到RESET或者REVERT 等我们自己按照教程搞的发现搞不了 我也跟大家有同样的困惑 这里把这个问题详细的说明一下 方法一 通过RESET撤销 我用的工具是Tortoise
  • 毕业设计-基于 MATLAB的红外图像预处理算法对比研究

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • codeforces - 920B(贪心)

    B Tea Queue time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output
  • 在没有自己的服务器的情况下,搭建自己的网站-开发自己的小程序接口

    目标 场景一 在没有自己的服务器的情况下 搭建自己的网站 并通过微信小程序给自己的网站引流 场景二 在没有自己的服务器的情况下 开发自己的小程序 后端接口使用第三方网站的某些功能完成小程序前后端数据交互能力 实现 场景一 使用gitee的g
  • 分贝dB的换算

    1dB 0 115Np 公式 公式 d B 10 l g
  • adworld.xctf-web-新手练习区刷题

    1 View Source 根据题目 就能猜到 此处是查看页面源码 在查看的过程中发现右键不能使用了 那就用F12吧 2 Robots 这题是考察Robots协议 访问的时候页面是一片空白 直接输入robots txt 在地址栏输入robo
  • 微信小程序滚动Tab选项卡:左右可滑动切换

    最终效果如上 问题 1 tab标题总共8个 所以一屏无法全部显示 2 tab内容区左右滑动切换时 tab标题随即做标记 active 3 当active的标题不在当前屏显示时 要使其能显示到当前屏中 一 wxml结构 tab标题因一排八个
  • Redis学习笔记(持续更新中...)

    学习课程 尚硅谷Redis6 目录 NoSQL简介 NoSQL概述 NoSQL的特点 适用场景 NoSQL不适用场景 几种常见的NoSQL数据库 Memcache Redis MongoDB Redis Redis的底层 Redis的五大数
  • 获取扫描枪数据并存入TXT文档的C#程序代码

    我可以提供一段 C 语言代码 用于获取扫描枪数据并存入TXT文档 include
  • 数仓分层、设计、建模、架构

    一 数仓分层误区 数仓层内部的划分不是为了分层而分层 分层是为了解决 ETL 任务及工作流的组织 数据的流向 读写权限的控制 不同需求的满足等各类问题 业界较为通行的做法将整个数仓层又划分成了 DWD DWT DWS DIM DM等很多层
  • facenet专题1:windows下使用train_sotfmax.py训练人脸识别模型

    1 facenet github地址 https github com davidsandberg facenet 下载该project git clone https github com davidsandberg facenet 2
  • node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    VScode Code Runner无法运行JavaScript js文件 原因 未安装Node js 解决方法 https nodejs org en 下载Nodejs 安装完之后 重启VScode 会自动配置 运行即可在终端看到结果
  • 【tauri】tauri的启动、运行与打包过程步骤

    兼容性 win11 系统 自带 WebView2 win10 安装完会自动安装WebView2 win7 需要先手动来装WebView2 开始安装 安装node 推荐用nvm将进行node版本管理 安装vs 生成工具 下载地址 https
  • 单片机 嵌入式 毕业设计题目选题推荐

    文章目录 1前言 2 如何选题 2 1 不要给自己挖坑 2 2 难度把控 2 3 如何命名题目 3 单片机 嵌入式 选题大全 3 1 嵌入式方向 3 2 算法方向 3 3 移动通信方向 3 4 学长作品展示 4 最后 1前言 近期不少学弟学
  • 子类的构造函数和析构函数

    1 构造函数是否可以被继承 子类可以继承父类的所有成员变量和成员函数 但不能继承父类的构造函数 因此 在创建子类对象时 为了初始化从父类继承来的数据成员 系统需要调用其父类的额构造函数 2 父类构造函数的调用规则 如果子类没有定义构造函数
  • axios的三层封装思想

    1 工具函数层 设置默认请求地址 设置默认超时时间 设置默认请求拦截 设置默认响应拦截 ajax工具函数层 import axios from axios axios defaults baseURL http localhost 5000