Axios-Mock-Adapter mock数据

devtools/2024/11/7 9:31:44/

摘要:最近一个项目没有后端配合,临时使用使用Axios-Mock-Adapter来mock数据的逻辑,简单记录下使用步骤如下

1. 安装Axios-Mock-Adapter

        首先,安装Axios-Mock-Adapter。Axios Mock Adapter 是一个用于模拟 Axios 请求和响应的库,主要用于测试和开发环境中。它通过拦截 Axios 的请求来提供自定义的响应,从而避免在测试中进行实际的网络请求。

npm install axios-mock-adapter --save

        接着,创建Axios实例,这一步src/utils/request.js中已完成

import axios from 'axios'const service = axios.create({baseURL: process.env.VUE_APP_BASE_API,timeout: 5000
})export default service

2. 创建模拟数据文件

        然后,创建模拟数据文件src/mock/index.js配置 Axios Mock Adapter,以模拟请求和响应。创建一个 Mock Adapter 实例并将其与Axios实例关联。这样,当发出请求时,Mock Adapter 就会拦截这些请求

// import axios from 'axios'
import AxiosMockAdapter from 'axios-mock-adapter'
import request from '@/utils/request' // 引入上面创建的 Axios 实例const mock = new AxiosMockAdapter(request)// Mock GET 请求
mock.onGet('/api/data').reply(200, {message: 'Hello World'
})// Mock POST 请求
mock.onPost('**/api/sys/login**').reply(200, {data: {token: '8fa22e88-f6ab-4a4b-930a-a5e62c4c74e8'},message: '登陆成功',success: true
})export default mock

3. 引入文件并在组件中使用

        再然后,在在主入口文件main.js中引入 Mock

import '@/styles/index.scss'
// 导入svgIcon
import installIcons from '@/icons'
// 导入mock
import '@/mock/index.js'const app = createApp(App)
installElementPlus(app)

        最后,在Vue组件中使用Mock 数据,此处调用登录接口。当你使用 Axios 发送请求时,如果请求匹配已定义的 Mock 响应,Mock Adapter 会返回你设置的响应,而不执行真实的网络请求。

// 登陆动作处理
const loading = ref(false) // 使用ref声明的数据默认值false
const loginFormRef = ref(null) // 使用ref声明的数据默认值null,用于获取组件实例
const store = useStore()
const handleLogin = () => {// 1.进行表单校验loginFormRef.value.validate((valid) => { // vue3的compsition API中没有this.refsif (!valid) return// 2.触发登陆动作loading.value = truestore.dispatch('user/login', loginForm.value).then((res) => {console.log(res)  //返回数据:data: {token: '8fa22e88-f6ab-4a4b-930a-a5e62c4c74e8'},message: "登陆成功",success: trueloading.value = false// 3. TODO:进行登陆后处理}).catch((err) => {console.log(err)loading.value = false})})
}

        启动项目验证。


http://www.ppmy.cn/devtools/131977.html

相关文章

vscode python怎么debug module

示例 {"name": "Re10K Test","type": "debugpy","request": "launch","module": "src.main", # 改变这个"args": ["experimentre10k","modetest","wandb…

【算法】——滑动窗口专题

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:长度最小的子数组 二:无重复字符的最长子串 三:最大连续1的个…

【论文笔记】Token Turing Machines

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Token Turing Machines 作…

【AcWing】算法基础课-动态规划

目录 1、闫式DP分析法 2、背包问题 2.1 01背包问题 朴素版本 优化版本 2.2 完全背包问题 朴素版本 优化版本 2.3 多重背包问题 朴素版本 二进制优化 2.4 分组背包问题 3、线性DP 3.1 数字三角形 3.2 最长上升子序列 3.3 最长公共子序列 4、区间DP 5、数位统计…

VLAN间通信以及ospf配置

目录 1.基础知识介绍 1.1 什么是VLAN? 1.2 VLAN有什么用? 1.3 不同VLAN如何实现通信? 1.4 什么是路由汇总? 1.4.1 路由汇总的好处: 2. 实验 2.1 网络拓扑设计 2.2 实验配置要求 2.2.1 三层交换配置&#xff…

开源 - Ideal库 - 常用时间转换扩展方法(一)

从事软件开发这么多年,平时也积累了一些方便自己快速开发的帮助类,一直在想着以什么方式分享出来,因此有了这个系列文章,后面我将以《开源-Ideal库》系列文章分享一些我认为比较成熟、比较方便、比较好的代码,如果感觉…

鸿蒙进阶-List组件

hello大家好,这里是鸿蒙开天组,今天我们来讲讲常用的List组件,也就是列表组件。 List组件 List 组件的基本用法,可以用它来展示列表,并且实现列表滚动,日常开发的时候还可以用它来实现更为复杂的效果。 …

mit6824-06-Raft学习记录01

文章目录 必要知识单点故障脑裂多数原则 近日开始学习分布式共识算法Raft,慢慢记录一些自己能看懂的东西。 优质博客: Raft原理详解 必要知识 单点故障 单点故障(single point of failure):服务器中某台机器出现故…