注:本文是《前端Mock选型大全》的模块。
注意:mockjs不支持fetch ,如何解决看下面。
1 安装使用
前端项目使用:
npm i mockjs # 安装npm i mockjs-fetch # fetch兼容包
如何使用:
import Mock from "mockjs";import MockFetch from "mockjs-fetch";MockFetch(Mock);// 属性名|生成规则:值const data = Mock.mock({"list|1-10": [{"id|+1": 1,},],});Mock.mock("/api/lists", "get", {list: [1, 2, 3]});// 传递不同的 methodMock.mock("/api/lists", "post", {list: [1, 2, 4]});// 通过函数自定义返回数据,但需要注意 parseMock.mock("/api/opt", "post", (opt) => {return JSON.parse(opt.body);});// 页面中const data = await fetch("/api/lists", {method: "get"}).then((res) => res.json());console.log(data);
2 生成规则
- 属性上
min-max: 1-2 ,或者具体值 +step属性自增- 如果值是数组,属性控制值
- 其他略
就简单的 random,建议忽略,要真搞不如看单独的 >>> Faker.js <<<
3 技术总结
没看到有交互功能。
技术原理:重写 xhr
从 1.0 开始,Mock.js 通过覆盖和模拟原生 XMLHttpRequest 的行为来拦截 Ajax 请求,不再依赖于第三方 Ajax 工具库(例如 jQuery、Zepto 等)。
同时因为mockjs只重写了 xhr ,所以不支持 fetch 操作,需要安装 axios-fetch 。
4 选型结论
优点:
- 好名字,名气大
- 使用简单,直观,功能少并且稳定
- 有简单的random语法
缺点:
- 停更
- 如果用到fetch需要额外处理
- 无法通过postman请求
