当前位置: 首页 > news >正文

实际项目中使用mockjs模拟数据

项目中的痛点

  1. 自己模拟的数据对代码的侵入程度太高,接口完成后要删掉对应的代码,导致接口开发完后端同事开发完,前端自己得加班;
  2. 接口联调的时间有可能会延期,接口完成的质量参差不齐;
  3. 对于数据量过大的模拟,手动模拟太费时;

使用mockjs的好处

Mock.js 可以帮助前端开发人员创建模拟数据,实现前后端的分离开发,提高开发效率,加速前端调试和开发速度,并且具有灵活的数据模拟和拦截功能,使前端开发更加方便和高效。

  1. 模拟数据:Mock.js 可以方便地创建模拟数据,可以自定义数据结构、类型、规则和数量,以满足前端开发过程中对于数据的需求。
  2. 独立于后端开发:在前后端分离开发模式下,前端开发人员可以使用 Mock.js 创建模拟数据并进行前端代码的开发和调试,无需依赖后端提供真实的接口数据。
  3. 提高开发效率:Mock.js 提供了丰富的数据模拟功能,可以快速生成符合需求的模拟数据,加快前端开发的速度。
  4. 数据随机化:Mock.js 可以随机生成各种类型的数据,如文本、日期、数字等,可以模拟真实情况下的多样化数据,帮助测试和调试前端代码。
  5. 数据拦截:Mock.js 可以拦截发出的 AJAX 请求,根据预先设置的规则返回模拟数据,方便前端开发人员在不完善或不可用的后端接口的情况下进行开发和调试。

使用方式

基于语法规范和官方示例文档,大致看一下之后就可以很好的模拟出自己在实际项目中需要用到的mock api数据。

基于mockjs@1.1.0、vue2、vite、axios实现的mock接口数据,在构建中添加判断是开发环境才使用mockjs,代码地址

// 安装
pnpm i mockjs -D
// main.js
import './mock/mock.js';
// src/mock/mock.js 
import Mock from 'mockjs';
Mock.setup({timeout: '500'
})
Mock.mock('/api/building', 'get', () => {return Mock.mock({'status': 200,"message": '成功','data|3': [{'id|+1': 1,'storey|+1': 1,'title': '@CTITLE','email': '@EMAIL','date': Mock.Random.date('yyyy-MM-dd hh:mm:ss'),'date2': Mock.Random.datetime(),'name': '@CNAME','image': Mock.Random.image('350x150', '#258EFF', '#fff', 'png', 'demo image')}]})
});// 返回的随机结果
// {
//   "status": 200,
//   "message": "成功",
//   "data": [
//     {
//       "id": 1,
//       "storey": 1,
//       "title": "改院现放万群",
//       "email": "k.mlcw@nlaoqseyse.cx",
//       "date": "1996-10-05 01:55:02",
//       "date2": "2017-12-27 19:06:06",
//       "name": "徐平",
//       "image": "http://dummyimage.com/350x150/258EFF/fff.png&text=demo image"
//     },
//     {
//       "id": 2,
//       "storey": 2,
//       "title": "红例老",
//       "email": "k.gssge@nkkwt.be",
//       "date": "1996-10-05 01:55:02",
//       "date2": "2017-12-27 19:06:06",
//       "name": "蔡强",
//       "image": "http://dummyimage.com/350x150/258EFF/fff.png&text=demo image"
//     },
//     {
//       "id": 3,
//       "storey": 3,
//       "title": "位治江基思",
//       "email": "y.azchn@vduwo.mo",
//       "date": "1996-10-05 01:55:02",
//       "date2": "2017-12-27 19:06:06",
//       "name": "杜静",
//       "image": "http://dummyimage.com/350x150/258EFF/fff.png&text=demo image"
//     }
//   ]
// }// src/pages/ScrollPage.vue 页面调用
export default {// ...mounted() {axios.get("/api/building").then(({ data }) => {this.list = data.data;});},
}

mock原理

mockjs对底层的XMLHttpRequest进行了代理,兼容 XMLHttpRequest 和 ActiveXObject,如果使用fetch api的话是不会被拦截的。

模板到模拟数据的策略,将特殊标记的语法转换成对应的模拟数据。

相关文章:

实际项目中使用mockjs模拟数据

项目中的痛点 自己模拟的数据对代码的侵入程度太高,接口完成后要删掉对应的代码,导致接口开发完后端同事开发完,前端自己得加班;接口联调的时间有可能会延期,接口完成的质量参差不齐;对于数据量过大的模拟…...

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站: 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试,在本机搭建好服务器后,可以用这个测试外网是否可以访问本机; 2、 IP查询ipw.cn,这个可以查询本机的网络是否IPv6访问…...

【iOS】Frame与Bounds的区别详解

iOS的坐标系 iOS特有的坐标是,是在iOS坐标系的左上角为坐标原点,往右为X正方向,向下为Y正方向。 bounds和frame都是属于CGRect类型的结构体,系统的定义如下,包含一个CGPoint(起点)和一个CGSiz…...

SpringBoot百货超市商城系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBoot框架开发的百货超市系统。首先,这是一个很适合SpringBoot初学者学习的项目,代…...

【实践篇】推荐算法PaaS化探索与实践 | 京东云技术团队

作者:京东零售 崔宁 1. 背景说明 目前,推荐算法部支持了主站、企业业务、全渠道等20业务线的900推荐场景,通过梳理大促运营、各垂直业务线推荐场景的共性需求,对现有推荐算法能力进行沉淀和积累,并通过算法PaaS化打造…...

持续贡献开源力量,棱镜七彩加入openKylin

近日,棱镜七彩签署 openKylin 社区 CLA(Contributor License Agreement 贡献者许可协议),正式加入openKylin 开源社区。 棱镜七彩成立于2016年,是一家专注于开源安全、软件供应链安全的创新型科技企业。自成立以来&…...

Kafka的消费者如何管理偏移量?

在Kafka中,消费者可以通过管理和跟踪偏移量(offset)来确保消费者在消费消息时的准确性和可靠性。偏移量表示消费者在特定分区中已经消费的消息的位置。以下是几种常见的偏移量管理方式: 手动提交偏移量:消费者可以通过…...

IntelliJ IDEA流行的构建工具——Gradle

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 如…...

nacos源码打包及相关配置

nacos 本地下载后,需要 install 下: mvn clean install -Dmaven.test.skiptrue -Dcheckstyle.skiptrue -Dpmd.skiptrue -Drat.skiptruenacos源码修改后,重新打包生成压缩包命令:在 distribution 目录中运行: mvn -Pr…...

【机器学习】Multiple Variable Linear Regression

Multiple Variable Linear Regression 1、问题描述1.1 包含样例的X矩阵1.2 参数向量 w, b 2、多变量的模型预测2.1 逐元素进行预测2.2 向量点积进行预测 3、多变量线性回归模型计算损失4、多变量线性回归模型梯度下降4.1 计算梯度4.2梯度下降 首先,导入所需的库 im…...

自己创建的类,其他类中使用错误

说明:自己创建的类,在其他类中创建,报下面的错误(Cannot resolve sysmbol ‘Redishandler’); 解决:看下是不是漏掉了包名 加上包名,问题解决;...

Packet Tracer – 使用 TFTP 服务器升级思科 IOS 映像。

Packet Tracer – 使用 TFTP 服务器升级思科 IOS 映像。 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 F0/0 192.168.2.1 255.255.255.0 不适用 R2 G0/0 192.168.2.2 255.255.255.0 不适用 S1 VLAN 1 192.168.2.3 255.255.255.0 192.168.2.1 TFTP …...

并查集基础

一、概念及其介绍 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根&#xf…...

C# 循环等知识点

《1》程序:事先写好的指令(代码) using 准备工具 namespace 模块名称 { class 子模块{ static void main()//具体事项 { 代码 } } } 《2》变量:内存里的一块空间,用来存储数据常用的有小数,整数&#xff0c…...

1.1.2 SpringCloud 版本问题

目录 版本标识 版本类型 查看对应版本 版本兼容的权威——官网: 具体的版本匹配支持信息可以查看 总结 在将Spring Cloud集成到Spring Boot项目中时,确保选择正确的Spring Cloud版本和兼容性是非常重要的。由于Spring Cloud存在多个版本,因此…...

Android AIDL 使用

工程目录图 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 代码:LearnAIDL代码:AIDLClient. 参考文献 安卓开发学习之AIDL的使用android进阶-AIDL的基本使用Android AIDL 使用使用 AIDL …...

MongoDB——命令详解

db.fruit.remove({name:apple})//删除a为apple的记录db.fruit.remove({})//删除所有的记录db.fruit.remove()//报错 MongoDB使用及命令大全(一)_mongodb 删除命令_言不及行yyds的博客-CSDN博客...

机器学习深度学习——多层感知机的简洁实现

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——多层感知机的从零开始实现 📚订阅专栏:机器学习&&深度学习 希望文章对你…...

笙默考试管理系统-MyExamTest(21)

笙默考试管理系统-MyExamTest(21) 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 六、 笙默考试管理系统…...

Redis高可用之主从复制、哨兵、cluster集群

一、Redis主从复制1.1 Redis主从复制的概念1.2 Redis主从复制作用1.3 主从复制流程1.4 搭建 Redis 主从复制 二、Redis哨兵模式2.1 概述2.2 哨兵模式原理2.3 哨兵模式的作用2.4 哨兵结构2.5 故障转移机制2.6 主节点的选举2.7 搭建Redis 哨兵模式 三、Redis 群集模式3.1 概述3.2…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 ​​摘要:​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...