mockjs 的语法规则(二)

  mockjs主要有两种语法规范: 数据模板定义规范DTD  && 数据占位符定义规范DPD;

  数据模板中的每个属性由三部分组成: 属性名、规则、属性值;

    属性名和规则之间用 “|” 进行分割;生成规则是可选的,一共有七种规则,但是规则的含义具体要根据属性值来进行确定,不同的属性值对应的规则含义是不同的;属性值中可以包含 @占位符,并且属性值还指定了最终值的初始值以及类型;

    我们在实际的应用中,属性值的类型其实就是我们 js 中数据的类型:string、number、boolean、object、array、function以及正则reg ;

    1)、属性值为 string

      ' name| min-max' : string ;  //通过重复string生成一个字符串,string的重复次数 大于等于min ; 小于等于max ;

      ' name| count' : string;  //通过重复string生成一个字符串,重复次数为 count ;

    2)、属性值为 number

      ' name| min-max' : number ;  //生成一个大于等于min 小于等于 max 的整数;

      ' name| +1' : number ;  //属性值自动加1,初始值为 number ;

      ‘ name| min-max.dmin-dmax’ : number ;  //生成一个浮点数,整数部分大于等于min,小于等于max; 小数部分保留 dmin 到 dmax 位;

    3)、属性值为 boolean

      ' name| 1' : boolean ; //随机生成一个布尔值,值为 true 和 false 的概率均为 50%;

      ' name| min-max' : boolean ; //随机生成一个布尔值,值为 true 的概率为 min/( min + max) ; 值为 false 的概率为 max/( min + max);

    4)、属性值为 object 

      ' name| count' : object ;    //从object中随机抽取count 个属性;

      ' name| min-max' : object;  //从object中随机抽取 min 到 max 个属性;

    5)、属性值为 array

      ' name| 1': array ;  //从array中随机选取一个值最为最终值;

      ' name| +1' : array;  //从array 中顺序选择一个元素,最为最终值;

      ' name| min-max' : array ;  //通过重复array 生成一个新数组,重复的次数大于等于min, 小于等于max ;

      ' name| count' : array;  //通过重复array 生成一个新数组,重复的次数为 count ;

    6)、属性值为 function

      ' name' : function ;  // 执行function,使其最终的返回值最为 最终的属性值;函数的上下文为 name 所在的对象;

    7)、属性值为 RegExp

      ' name' : reg ;   //根据正则去生成一个符合这个正则表达式规则的属性值;

    

    数据占位符只是在属性值字符串中占据一个位置,最终并不出现在属性值中, 占位符的格式为  @占位符  ||  @占位符(参数 [,参数]);

    使用数据占位符的时候需要注意的是: 1)、用@来标识的其后的是占位符;2)、占位符应用的是Mock.random的方法; 3)、通过Mock.random.extend()来扩展自定义占位符; 4)、占位符也可以引用数据模板中的数据而且会优先引用;5)、占位符支持相对路径也支持绝对的路径;

原文地址:https://www.cnblogs.com/mufc/p/10393989.html