mockjs学习

1.前言

最近面试发现之前团队协同合作的项目没有mock数据难以向面试官直接展示,所以迟到得来速学一下mockjs。

参考视频:mockJs 妈妈再也不用担心我没有后端接口啦_哔哩哔哩_bilibili

一开始查阅了一些资料,先是看了下EasyMock,有点没搞懂是怎么用的

轻松模拟 (presstime.cn)

所以最后对比之下还是决定使用mockjs。

首先介绍一下mock数据的好处,除了前端可以在不依赖后端的情况下展示整个项目运行流程之外,还有很多其他好处。

官方给出的作用:

直观来说就是

1.前后端并行开发

2.前端独立运行


Mockjs官方文档:Mock.js (mockjs.com)

2.安装配置

javascript 复制代码
npm i mockjs

3.mock数据初体验

创建一个test.js文件

javascript 复制代码
const { mock } = require("mockjs");

let data = mock({
  "data": "@cname()",
  "age": "@integer(1,100)",
  "addr": "@city(true)",
  "email": "@email(qq.com)",
})

console.log(data)

打开终端,运行node .\test.js命令


4.数据模板定义规范

每个属性组成部分:属性名 生成规则 属性值

javascript 复制代码
"属性名|生成规则":属性值

1️⃣七种生成规则

  1. 'name|min-max': value
  2. 'name|count': value
  3. 'name|min-max.dmin-dmax': value
  4. 'name|min-max.dcount': value
  5. 'name|count.dmin-dmax': value
  6. 'name|count.dcount': value
  7. 'name|+step': value
  • 属性名 和 生成规则 之间用竖线 | 分隔。

  • 生成规则 是可选的。

  • 生成规则 的 含义 需要依赖 属性值的类型 才能确定。

  • 属性值 中可以含有 @占位符

  • 属性值 还指定了最终值的初始值和类型。

具体示例可以看官方文档。Mock.js (mockjs.com)

2️⃣数据占位符

占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。

javascript 复制代码
@占位符
@占位符(参数 [, 参数])

占位符 引用的是 Mock.Random 中的方法,可以直接导进去。

ctrl+点击random可以查看具体实现方法


5. 拦截axios请求

拦截axios请求之后,实际响应的数据是mock里面的数据,mock拦截请求的原理加单理解就是把原生的XHR重写了,变成自己的。

所以在开启mock之后,被拦截的请求是没有真实发送出去的,在网络请求中是看不到的。

几种拦截写法

1️⃣完整匹配

2️⃣methos

3️⃣正则

4️⃣函数模式

5️⃣代理增删查改


6.在实际项目中使用

基本目录结构

mock相关文件

可以按照接口模块,分开定义对应的mock数据文件

注意填入正确的拦截路径。

main文件全局配置

只需要在main.js中引入mock文件夹的index文件就可以了

只需要注释掉main.js中对mockjs文件的导入,就可以使用真正的后端接口,开启就是使用mock地址。

还可以再灵活一点,把mock/index的入口变成函数,开启mock就调用做个函数,不开启就不调用。

成功拦截axios并返回mock数据!

相关推荐
冬夜戏雪1 天前
实习面经摘录(九)
学习
arvin_xiaoting1 天前
OpenClaw学习总结_I_核心架构_8:SessionPruning详解
前端·chrome·学习·系统架构·ai agent·openclaw·sessionpruning
妄汐霜1 天前
小白学习笔记(spring框架的aop和tx)
笔记·学习
椎4951 天前
JSONUtil工具包大致学习使用
学习
leiming61 天前
CAN 通信协议学习讲义(带图文 + C 语言代码)
c语言·开发语言·学习
星空1 天前
RAG学习第一节
学习
知识分享小能手1 天前
MongoDB入门学习教程,从入门到精通,MongoDB入门指南 —— 知识点详解(2)
数据库·学习·mongodb
炽烈小老头1 天前
【 每天学习一点算法 2026/03/24】寻找峰值
学习·算法
Nan_Shu_6141 天前
学习:Cesium (3)
学习
C羊驼1 天前
C语言学习笔记(十五):预处理
c语言·经验分享·笔记·学习·算法