Mockjs Lite仿真數(shù)據(jù)生成器
Mockjs Lite,一個(gè)極簡(jiǎn)的仿真數(shù)據(jù)生成器
特別說(shuō)明
這個(gè)項(xiàng)目參(抄)考(襲)自 Mock.js,但為什么要重復(fù)造輪子呢?
因?yàn)椴糠止δ懿缓糜?,比如沒(méi)有隨機(jī)手機(jī)號(hào),沒(méi)有時(shí)間區(qū)間,占位圖不能自己切源,等等。
不夠自由,不方便插件化自定義功能,不方便局部定義項(xiàng)目友好的數(shù)據(jù)。
因?yàn)樘罅?,一個(gè)mock而已,為什么要這么大。
因?yàn)榭戳嗽创a,就想重寫(xiě)了。
好吧,就當(dāng)是練手了。
PS: 采用 ES6 重寫(xiě),大部分功能代碼抄襲 Mock.js,好用的留著,不好用的,自己改了。
Mockjs-Lite 與 Mockjs 差異說(shuō)明
移除了 ajax 部分,因?yàn)?xhr 劫持方式,確實(shí)不是很友好。(最好針對(duì) jquery, axios 等插件化劫持)
移除了 Path, RegExp 功能,感覺(jué)不是特別實(shí)用。
移除 Random.natural 方法,其實(shí)就是單詞太難寫(xiě),完全可以 Random.integer Random.int 代替。
移除 Random.dataImage 方法,很雞肋,非常的雞肋。
精簡(jiǎn)了地址庫(kù),由原先的 113k 精簡(jiǎn)到了 15k,只保留了北上廣之類的一線二線城市。
Function 功能優(yōu)化,可以用
this當(dāng)前兄弟節(jié)點(diǎn)以及root全部對(duì)象。Random.datetime 功能優(yōu)化,增加時(shí)間區(qū)間,以及時(shí)間戳,10位時(shí)間戳的支持。
Image 部分優(yōu)化,支持切換占位圖源,默認(rèn)七牛占位圖。
為什么要用 Mockjs-Lite?
輕量和敏捷
簡(jiǎn)單的語(yǔ)法
直觀的結(jié)果
方便自定義
編不下去了
用法
在項(xiàng)目中添加 Mockjs-Lite
$ yarn add mockjs-lite # 推薦 # 或者 $ npm i -S mockjs-lite
使用 Mockjs-Lite
// 使用 Mock
const { Mock } = require('mockjs-lite');
const data = Mock.mock({
// 屬性 list 的值是一個(gè)數(shù)組,其中含有 1 到 10 個(gè)元素
'list|1-10': [{
// 屬性 id 是一個(gè)自增數(shù),起始值為 1,每次增 1
'id|+1': 1
}]
});
// 輸出結(jié)果
console.log(JSON.stringify(data, null, 2));
或者 es6
import { Mock, Random } from 'mockjs-lite';
const data = Mock.mock({
// 屬性 list 的值是一個(gè)數(shù)組,其中含有 1 到 10 個(gè)元素
'list|1-10': [{
// 屬性 id 是一個(gè)自增數(shù),起始值為 1,每次增 1
'id|+1': 1
}]
});
console.log(JSON.stringify(data, null, 2));
console.log(Random.now());
PS: 別吐槽,例子抄 Mock.js 的 wiki 文檔。。
相關(guān)
Mock.js - 對(duì),就是抄的他。。
