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数据!

相关推荐
芜狄2 小时前
UCOSIII移植——学习笔记1
笔记·嵌入式硬件·学习·stm32f103rct6·ucosiii实时操作系统
Cellular_Modem笔记3 小时前
5G NR-NTN协议学习系列:NR-NTN介绍(2)
学习·5g·ntn
ooo-p3 小时前
FPGA学习篇——Verilog学习Led灯的实现
学习·fpga开发
_hermit:4 小时前
【从零开始java学习|小结】记录学习和编程中的问题
java·学习
屁股割了还要学4 小时前
【数据结构入门】排序算法(4)归并排序
c语言·数据结构·学习·算法·排序算法
武昌库里写JAVA5 小时前
Mac下Python3安装
java·vue.js·spring boot·sql·学习
程序员东岸8 小时前
C语言入门指南:字符函数和字符串函数
c语言·笔记·学习·程序人生·算法
潘潘潘潘潘潘潘潘潘潘潘潘8 小时前
【MySQL】从零开始学习MySQL:基础与安装指南
linux·运维·服务器·数据库·学习·mysql
东风西巷8 小时前
全能的3D创作平台,Blender(免费开源3D建模工具)
学习·3d·开源·blender·软件需求
汉堡包0018 小时前
【靶场练习】--DVWA第一关Brute Force(暴力破解)全难度分析
学习·安全