前言
使用mockjs可以事先模拟数据,前提是和后端约定好了数据接口,怎样的数据。使用mock就可以生成你要的数据了,从而实现开发时前后端分离。
其主要功能是:
语法规范
Mock.js 的语法规范包括两部分:
1.数据模板定义规范(Data Template Definition,DTD) 2.数据占位符定义规范(Data Placeholder Definition,DPD)
数据模板定义规范 DTD
数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:
注意:
- 属性名 和 生成规则之间 用竖线 | 分隔。
- 生成规则 是可选的。
- 生成规则 有 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
- 生成规则 的 含义 需要依赖 属性值的类型 才能确定。
- 属性值 中可以含有 @占位符。
- 属性值 还指定了最终值的初始值和类型。
例1:
{
"number1": 12.92,"number2": 123.51,"number3": 123.777,"number4": 123.1231091814
}@H_404_30@
例2:根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串:
{
"regexp1": "pJ7","regexp2": "F)\fp1G","regexp3": "561659409"
}
@H_404_30@
例3:
结果:
//星星数量为3 { "string": "★★★" }
例4:
结果:
{ "number": 8 }
数据占位符定义规范 DPD
占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。
占位符 的格式为:
@占位符 @占位符(参数 [,参数])
注意:
- 用 @ 来标识其后的字符串是 占位符。
- 占位符 引用的是 Mock.Random 中的方法。
- 通过 Mock.Random.extend() 来扩展自定义占位符。
- 占位符 也可以引用 数据模板 中的属性。
- 占位符 会优先引用 数据模板 中的属性。
- 占位符 支持 相对路径 和 绝对路径。
{
"name": {
"first": "Charles","middle": "Brenda","last": "Lopez","full": "Charles Brenda Lopez"
}
}
@H_404_30@
通过jQuery ajax请求假数据例子
1.首先,引入mockjs,引入jquery(此处用jq封装好的ajax发送请求)