guoshuai93 / blog

19 stars 2 forks source link

mock.js 语法笔记 #15

Open guoshuai93 opened 6 years ago

guoshuai93 commented 6 years ago

mock.js 语法笔记

mockjs 以及 easy-mock 深入学习

mock.js 的语法规范包括两部分:

  1. 数据模板定义
  2. 数据占位符定义

数据模板定义

一个完整的数据模板又包括:属性名生成规则属性值

// 属性名   name
// 生成规则 rule
// 属性值   value
'name|rule': value

注意:

例子:

模板
"number|1-100": 100

结果
"number": 16

数据占位符

格式:

@占位符
@占位符(参数 [, 参数])

注意:

  1. @ 来标识其后的字符串是 占位符
  2. 占位符 引用的是 Mock.Random 中的方法。
  3. 通过 Mock.Random.extend() 来扩展自定义占位符。
  4. 占位符 也可以引用 数据模板 中的属性。
  5. 占位符 会优先引用 数据模板 中的属性。
  6. 占位符 支持 相对路径绝对路径

语法里涉及到了几乎我们所有经常用到的数据模板,比如:

例子:

{
  "list|2": [{
    "title": "@ctitle(15,25)",
    "author": "@cname",
    "id": "@id",
    "display_time": "@date(yyyy-MM-dd)",
    "status|1": ["draft", "published", "deleted"],
    "pageviews": "@integer(1000, 3000)"
  }]
}
// 生成后的数据
{
  "list": [
    {
      "title": "想好少内段验下矿飞内造件划候被数头元眼何性时象",
      "author": "武勇",
      "id": "640000199006222588",
      "display_time": "1993-06-16",
      "status": "deleted",
      "pageviews": 1494
    },
    {
      "title": "天员般我律手着目如安四世算是毛教",
      "author": "雷敏",
      "id": "610000200405158763",
      "display_time": "2006-07-17",
      "status": "published",
      "pageviews": 1448
    }
  ]
}

官方文档: