注:本文是《前端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]
});
// 传递不同的 method
Mock.mock("/api/lists", "post", {
list: [1, 2, 4]
});
// 通过函数自定义返回数据,但需要注意 parse
Mock.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请求