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中的数据 ...
随机推荐
- docker Get "https://registry-1.docker.io/v2/": x509: certificate is valid for
前言 docker 在进行 build 时,报错:Get "https://registry-1.docker.io/v2/": x509: certificate is vali ...
- Golang 入门 : 文件名、关键字与标识符
Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go .如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.go ...
- python正则表达式笔记1
最近工作中经常用到正则表达式处理数据,慢慢发现了正则表达式的强大功能,尤其在数据处理工作中,记录下来分享给大家. 一. 正则表达式语法介绍 正则表达式(或 RE)指定了一组与之匹配的字符串:模块内的函 ...
- 使用AOP技术实现接口验签
一.背景 在给第三方提供接口时,我们需要对接口进行验签.具体来说,当外部系统调用我们的接口时,请求中需要携带一个签名,我们接收到请求后,会解析数据并校验签名是否正确,以确保请求的合法性和安全性. 为了 ...
- 【uniapp】文本控件多余文字省略号代替
多余文字使用省略号效果 代码 .l-dd-content{ width: 100%; color: #8b8b8b; display: -webkit-box; /** 对象作为伸缩盒子模型显示 ** ...
- Go语言实现1024终端游戏-不到400行代码
先放源码地址,喜欢看源码翻源码,喜欢看文章的继续继续看文章 https://github.com/taadis/go1024 - go1024 使用 go 语言实现的 1024 终端游戏,不到400行 ...
- C++宏定义中可变参数列表__VA_ARGS__ 及 QT 提供的宏 QT_OVERLOADED_MACRO
1. 基本用法 VA_ARGS 是 C/C++ 中的预定义宏,用于在宏定义中表示可变参数列表(Variadic Arguments),需与省略号 ... 配合使用.其核心作用是将宏调用中的可变参数原样 ...
- 掌握Tortoise-ORM高级异步查询技巧
title: 掌握Tortoise-ORM高级异步查询技巧 date: 2025/04/22 12:05:33 updated: 2025/04/22 12:05:33 author: cmdrago ...
- thinkphphp 计算分页 和分页总数 和sql计算分页 php
利用page计算分页 $p=input('p')?input('p'):1; $limit=6; $res=db('points_log')->where(['p_uid'=>$uid,' ...
- 35.2K star!双链笔记+知识图谱+本地优先,这款开源知识管理神器绝了!
一款融合「双链笔记+知识图谱+本地优先」理念的开源知识管理工具,支持Markdown/Org-mode双格式,打造你的第二大脑! 项目介绍 "Logseq 是一个注重隐私.开源的知识管理平台 ...