02-语法规范

nobility 发布于 2022-03-10 2919 次阅读


语法规范

数据模板定义规范DTD

与js定义对象一致,使用竖线分隔生成规则"属性名|生成规则": 属性值

  • 若属性值是函数时,无需生成规则,取其返回值作为最终的属性值
  • 若属性值是正则时,无需生成规则,根据正则反向生成可以匹配它的字符串
生成规则 String Number Boolean Object Array
min-max 随机重复次数,空字符串时是随机字符 min-max之间的数字 min是属性值的概率份数,max是!属性值的概率 从属性值中随机选取min-max个属性 从属性值中随机选取min-max生成新数组
count 固定重复次数,空字符串时是随机字符 生成count的值 只能是1,布尔值的概率各是二分之一 从属性值中随机选取count个属性 重复属性值count次生成新数组,count是1时是随机选取一个作为最终值
min-max.dmin-dmax 小数部分不起作用 随机浮点数,小数位代表保留小数位数 小数部分不起作用 小数部分不起作用 小数部分不起作用
min-max.dcount 小数部分不起作用 随机浮点数,小数位代表保留小数位数 小数部分不起作用 小数部分不起作用 小数部分不起作用
count.dmin-dmax 小数部分不起作用 随机浮点数,小数位代表保留小数位数 小数部分不起作用 小数部分不起作用 小数部分不起作用
count.dcount 小数部分不起作用 随机浮点数,小数位代表保留小数位数 小数部分不起作用 小数部分不起作用 小数部分不起作用
+step 不起作用 与数组结合递增步长 不起作用 不起作用 从属性值中顺序选取1个元素,作为最终值
const Mock = require("mockjs");
var goods = Mock.mock({
    "list|1-10": [
        {
            "id|+1": 0,
            "price|1-3.3": 0,
            "describe|10-20": "",
            "show|1": true,
        }
    ]
})
console.log(goods);
// { list: { id: 0, price: 3.304, describe: 'rhN[BVbvwVyDb', show: true } }

数据占位符定义规范DPD

占位符只是在属性值字符串中占个位置,并不出现在最终的属性值中,支持拼接,占位符的格式为:@占位符@占位符(...参数])

  • @来标识其后的字符串是占位符,直到空格
  • 占位符引用的是Mock.Random中的方法
  • 通过Mock.Random.extend()来扩展自定义占位符
  • 占位符也可以引用数据模板中的属性
const Mock = require("mockjs");
var placeholder = Mock.mock("@id");
//上下两种方式是一致的
var randomFun = Mock.Random.id();
console.log(placeholder, randomFun);
//370000197406173100 440000197802200893

Mock.Random.extend({    //使用Random.extend()方法按照以下格式扩展占位符
    custom(...args){   //可自定义参数
        var arr = ["自定义1", "自定义2", "自定义3"];
        return this.pick(arr);
    }
});
console.log(Mock.mock("@custom"));
//自定义3

常用占位符

更多实例从这里可以查看

占位符 描述
@id 随机id
@name 随机姓名,使用c开头可获得中文名
@email 随机邮箱
@image 随机图片htp地址,可接收大小,背景颜色,文字颜色,图片上文字参数,16进制颜色
@dataImage 随机图片htp地址,可接收大小,文字参数,颜色随机
@color 随机16进制颜色,其他也有@hex@rgb@rgba@hsl
@date 随机日常标准日期,可接收格式化参数
@time 随机24小时制时间,可接收格式化参数
@datetime 随机日常标准时间日期,可接收格式化参数
@now 当前标准时间日期
@title 随机标题字符串,使用c开头可获得中文标题
@paragraph 随机段落字符串,使用c开头可获得中文段落
@region 随机地区
@province 随机省
@city 随机市,可接收参数true连同省返回
@county 随机县,可接收参数true连同省市返回
@shuffle 接收数组参数,返回数组的洗牌结果
@ip 随机ip地址
此作者没有提供个人介绍
最后更新于 2022-03-10