MockJs的使用
1 Mock.js的语法规范
Mock.js的语法规范包括两部分:
1 数据模板定义规范
2 数据占位符定义规范
1.1 数据模板定义规范
数据模板中的每个属性由三部分组成:属性名、生成规则、属性值。
//属性名 name
// 生成规则 rule //
//属性值 value
'name|rule':value
注意:
1 属性名和生成规则之间用|分隔。
2 生成规则是可选的。
3 生成规则有7种格式:
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
4 生成规则的含义需要依赖属性值的类型才能确定
5 属性值中可以含有@占位符
6 属性值还指定了最终值的初始值和类型
1.1.1 生成规则示例
1 属性值是字符串String
'name|min-max':String
//通过重复String生成一个字符串,重复次数大于等于min,小于等于max
2 属性值是数字Number
1 'name|+1':number
属性值自动加1,初始值为number
2 'name|min-max':number
生成一个大于等于min、小于等于max的整数,属性值number只是用来确定类型
3 'name|min-max.dmin-dmax':number
生成一个浮点数,整数部分大于等于min、小于等于max,小数部分保留到dmin到dmax位
3 属性值是布尔型Boolean
1 'name|1':boolean
随即生成一个布尔值,值为true的概率为1/2
2 'name|min-max':value
随机生成一个布尔值,值为value的概率为min/(min+max),值为!value的概率为max/(min+max)
4 属性值是对象Object
1 'name|count':object
从属性值object中随机选取count个属性
2 'name|min-max':object
从属性值object中随机选取min-max个属性
5 属性值是数组Array
1 'name|1':array
从属性值array中随机选取一个元素作为最终值
2 'name|+1':array
从属性值array中顺序选取1个元素作为最终值
3 'name|min-max':array
通过重复属性值array生成一个新的数组,重复次数大于等于min,小于等于max
4 'name|count':array
通过重复属性值array生成一个新的数组,重复次数为count
6 属性值是函数Function
1 'name':function
执行函数function,取其返回值作为最终的属性值,函数的上下文为属性'name'所在的对象
7 属性值是正则表达式
'name':regexp
1.2 数据占位符定义规范
占位符只是在属性字符串中占个位置,并不出现在最终的属性值中
占位符的格式为:
@占位符
@占位符(参数[,参数])
注意:
用@来标识其后的字符串是占位符。
占位符引用的是Mock.Random中的方法
通过Mock.Random.extend()来扩展自定义占位符
占位符也可以引用数据模板中的属性
占位符会优先引用数据模板中的属性
占位符支持相对路径和绝对路径
Mock.mock({
name: {
first: '@FIRST',
middle: '@FIRST',
last: '@LAST',
full: '@first @middle @last'
}
})
// =>
{
"name": {
"first": "Charles",
"middle": "Brenda",
"last": "Lopez",
"full": "Charles Brenda Lopez"
}
}