独立于后端的前端开发
在nodejs端使用1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# 安装
npm install mockjs
// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
'list|1-10': [{
// 属性 id 是一个自增数,起始值为 1,每次增 1
'id|+1': 1
}]
})
// 输出结果,1-10个之间随机,这里是两个
console.log(JSON.stringify(data, null, 2));
// {
// "list": [
// {
// "id": 1
// },
// {
// "id": 2
// }
// ]
// }
在浏览器中使用demo在这里1
2
3
4
5
6
7
8
9
10
11
12<!-- (必选)加载 Mock -->
<script src="http://mockjs.com/dist/mock.js"></script>
<script>
// 使用 Mock
var data = Mock.mock({
'list|1-10': [{
'id|+1': 1
}]
});
console.log(JSON.stringify(data, null, 2));
//跟上面结果一样
</script>
生成图片,生成颜色值,生成段落1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var a =Random.image('200x100')
// "http://dummyimage.com/200x100"
// Random.image()
Random.image()
// Random.image( size )
Random.image('200x100')
// Random.image( size, background )
Random.image('200x100', '#FF6600')
// Random.image( size, background, text )
Random.image('200x100', '#4A7BF7', 'Hello')
// Random.image( size, background, foreground, text )
Random.image('200x100', '#50B347', '#FFF', 'Mock.js')
//http://dummyimage.com/200x100/50B347/FFF&text=Mock.js
// Random.image( size, background, foreground, format, text )
Random.image('200x100', '#894FC4', '#FFF', 'png', '!')
Random.guid()
Mock.mock('@guid')
Mock.mock('@guid()')
// "3b5d25c4-b5Ac-eE3d-253D-3cC6fD707b56"
// "Ad933c55-fAea-7e86-f75b-edb8DEA1fc58"
// "e2Aeece6-e9f1-1ee8-Ba9D-e76cD5E4A5AD"
浏览器端最常使用方法
1 | <!-- (必选)加载 Mock --> |
数据模板
数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:
属性名 name
生成规则 rule
属性值 value
‘name|rule’: value
属性名 和 生成规则 之间用竖线 | 分隔。
生成规则 是可选的。
生成规则 有 7 种格式:
‘name|min-max’: value
‘name|count’: value
‘name|min-max.dmin-dmax’: value
‘name|min-max.dcount’: value
‘name|count.dmin-dmax’: value
‘name|count.dcount’: value
‘name|+step’: value
生成规则 的 含义 需要依赖 属性值的类型 才能确定。
属性值 中可以含有 @占位符。
属性值 还指定了最终值的初始值和类型。
属性值是字符串 String
‘name|min-max’: value
通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max。
‘name|count’: value
通过重复 string 生成一个字符串,重复次数等于 count。
属性值是数字 Number
‘name|+1’: number
属性值自动加 1,初始值为 number。
‘name|min-max.dmin-dmax’: number
生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。
‘name|min-max.dmin-dmax’: number
生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。
属性值是布尔型 Boolean
‘name|1’: boolean
随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。
‘name|min-max’: value
随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)。
属性值是对象 Object
‘name|count’: object
从属性值 object 中随机选取 count 个属性。
‘name|min-max’: object
从属性值 object 中随机选取 min 到 max 个属性。
属性值是数组 Array
‘name|1’: array
从属性值 array 中随机选取 1 个元素,作为最终值。
‘name|+1’: array
从属性值 array 中顺序选取 1 个元素,作为最终值。
‘name|min-max’: array
通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。
‘name|count’: array
通过重复属性值 array 生成一个新数组,重复次数为 count。
属性值是函数 Function
‘name’: function
执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 ‘name’ 所在的对象。
属性值是正则表达式 RegExp
‘name’: regexp
根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。
数据占位符定义规范 DPD
占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。
占位符 的格式为:
@占位符
@占位符(参数 [, 参数])1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Mock.mock({
name: {
first: '@FIRST',
middle: '@FIRST',
last: '@LAST',
full: '@first @middle @last'
}
})
// {
// "name": {
// "first": "Anthony",
// "middle": "Brenda",
// "last": "Young",
// "full": "Anthony Brenda Young"
// }
// }
占位符比较多,全部如下:
更多使用请参考mockjs官方示例