Vue3中Mock数据的简单方案
因为Vue3项目开发中需要用到Mock数据,所以这里记录一种快速Mock数据的方法。
一、安装
首先,你需要安装 axios 和 axios-mock-adapter。
npm install axios axios-mock-adapter --save
二、编写mock数据
为了保证项目的整洁,我们在项目根目录下的src目录下新建一个名为mock的文件夹。然后依次进行如下步骤:
(1)在mock文件夹下新建index.js文件,文件内容如下:
import MockAdapter from 'axios-mock-adapter'
import axios from 'axios'
// 创建一个 MockAdapter 实例
let mock = new MockAdapter(axios)
const initMock = () => {
// mock模拟一个get方法的响应数据
mock.onGet('/users').reply(200, { // 200 为状态码,后面对象为返回data
users: [
{ id: 1, name: '李华' }
]
})
// mock模拟一个post方法的响应数据
mock.onPost('/foo').reply(200, { // 200 为状态码,后面对象为返回data
msg: 'success',
desc: "恭喜,请求成功!"
})
// 模拟一个带参数请求的响应
mock.onGet("/search", { params: { searchText: "张" } }).reply(200, {
users: [{ id: 1, name: "张小花" }],
});
// 模拟一个错误响应
mock.onPut('/api/users/1').networkError();
}
// 导出
export default initMock
(2)在main.js中引入使用,在main.js中加入如下代码:
// 导入mock数据
import initMock from './mock/index';
// 初始化mock数据函数方法
initMock()
三、使用mock数据
以下是使用mock数据的方法的vue页面代码,Mock.vue示例页面:
<template>
<div>
<div><b>axios-mock-adapter</b>数据模拟js库,请注意浏览器控制台输出</div>
<button @click="funGetTest">get请求测试</button>
<button @click="funParamsTest">get带参数请求测试</button>
<button @click="funPostTest">post请求测试</button>
<button @click="funPutTest">put请求测试(错误响应示例)</button>
</div>
</template>
<script setup>
//引入axios
import axios from 'axios';
const funGetTest = () => {
axios.get("/users").then((res) => {
console.log("GET请求结果:", res);
});
}
const funParamsTest = () => {
axios.get("/search", {
params: { searchText: "张" }
}).then(res => {
console.log("GET带参数请求结果:", res);
});
}
const funPostTest = () => {
axios.post("/foo").then(res => {
console.log("POST请求结果:", res);
});
}
const funPutTest = () => {
axios.put("/api/users/1").then(res => {
console.log("PUT请求结果:", res);
});
}
</script>
<style scoped>
button {
border: 1px solid #000;
padding: 10px;
margin: 10px;
cursor: pointer;
}
button:hover {
background-color: #3496eb;
color: #ffffff;
}
</style>
上述方法示例展示了如何使用 axios-mock-adapter 来模拟不同的 HTTP 请求和响应,让你能够测试你的应用在各种情况下的行为,而不需要实际发送网络请求。
Vue3中Mock数据的简单方案的更多相关文章
- 你我都会遇到的需求:如何导出MySQL中的数据~ 简单!实用!
目录 你我都有的需求 方式一:tee 方式二:mysql_use_result 推荐阅读 一.给研发同学看的面试指南 二.MySQL-视频 三.进阶MySQL中间件-视频 四.白日梦的云原生-笔记 五 ...
- 2、 Spark Streaming方式从socket中获取数据进行简单单词统计
Spark 1.5.2 Spark Streaming 学习笔记和编程练习 Overview 概述 Spark Streaming is an extension of the core Spark ...
- 在vue项目中mock数据
第一步:安装: 在命令行中执行: npm install mockjs; 第二步:定义index.js文件 我们新建一个mock文件夹,此文件夹中建一个index.js文件:在index.js中输入以 ...
- IOS中的数据存储 简单总结
1. NSKeyedArchiver(加密形式) 2. plist 3. NSUserDefaults 4. writeToFile 5. SQLite3 ==== N ...
- 在vue项目中, mock数据
1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data.json 文件 2.在build目录下的 dev-server.js的文件作如下 ...
- vue3中reactive数据被重新赋值后无法双向绑定,使用reactive包裹数组如何正确赋值?
需求:将接口请求到的列表数据赋值给响应数据arr const arr = reactive([]); const load = () => { const res = [2, 3, 4, 5]; ...
- 深入浅出的webpack4构建工具---比mock模拟数据更简单的方式(二十一)
如果想要了解mock模拟数据的话,请看这篇文章(https://www.cnblogs.com/tugenhua0707/p/9813122.html) 在实际应用场景中,总感觉mock数据比较麻烦, ...
- vue-cli项目中怎么mock数据
在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)
CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作
http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...
随机推荐
- MySQL REPLACE函数:字符串替换
语法 REPLACE ( string_expression , string_pattern , string_replacement ) 替换字符串,接受3个参数,分别是原字符串,被替代字符串,替 ...
- WebKit Inside: CSS 的匹配原理
相关文章 WebKit Inside: CSS 样式表的解析 WebKit Inside: CSS 样式表的匹配时机 WebKit Inside: Acitvie 样式表 当WebView解析完所有外 ...
- SpringBoot集成LDAP认证登录
Maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- Warning MVC1000
场景重现 视图文件中有些代码如下: @Html.Partial("_Footer") 会出现警告: // 警告 MVC1000 Use of IHtmlHelper.Partial ...
- DeepSeek 聊天机器人项目
想要更深入玩转聊天机器人开发? 推荐本文档 + 课程<DeepSeek 聊天机器人项目>一起学习,效果翻倍! 边学边练,轻松打造智能对话系统~ (๑•̀ㅂ•́)و✧ 快上车,AI 之旅发车 ...
- AndrodStudio构建时报错Could not find com.android.tools.build:gradle:xxx
检查配置的版本号在maven仓库里有没有. maven仓库地址: https://repo1.maven.org/maven2/com/android/tools/build/gradle/ 选择需要 ...
- 使用Python解析求解扩散方程
引言 大家好!今天我们来探讨一个非常重要的物理问题-扩散方程,并用 Python 来求解它.扩散现象广泛存在于自然界中,从气体.液体中分子的扩散,到热量的传递,甚至污染物的扩散,都是扩散方程的应用场景 ...
- CountDownLatch的countDown()方法的底层源码
一.CountDownLatch的构造方法 // 创建倒数闩,设置倒数的总数State的值 CountDownLatch doneSignal = new CountDownLatch(N); 二.c ...
- ReadWriteLock:读写锁
一. /* * 1. ReadWriteLock : 读写锁 * * 写写/读写 需要"互斥" * 读读 不需要互斥 * */ public class TestReadWrite ...
- 一文速通Python并行计算:08 Python多进程编程-multiprocessing模块、进程的创建命名、获取进程ID、创建守护进程和进程的终止
一文速通 Python 并行计算:08 Python 多进程编程-multiprocessing 模块.进程的创建命名.获取进程 ID.创建守护进程和进程的终止 摘要: 本节介绍 Python 中 m ...