欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mock.js

程序员文章站 2022-07-10 20:21:32
...

一、技术说明

  1. 为什么要使用这种技术?
  2. 对于前后端分离项目,后端工程师的API上线速度不匹配
  3. 前端工程师需要模拟数据接口,代替后端未上线的API
  4. Mock.js是一款模拟json数据的前端技术
  5. 官网:mockjs.com

二、安装测试

  1. 两种安装方式,一种是node下运行,另一种是浏览器中运行
  2. 如在node下运行,需要下载和安装node.js , node官网:nodejs.org/zh-cn/;
  3. 安装之后,在webstorm或者vscode测试node环境:node -v
  4. 创建Mock目录,在下面初始化package.json文件,命令:npm init -y
  5. 先安装node下的mock.js,命令:npm install mockjs
  6. 创建一个src,在下面创建01.js文件,然后用下面的官网实例代码练习吧:
// 引入mock.js,相当于src = "mock.js"
const Mock = require('mockjs')
const data = Mock.mock({
// list|1=10 为 list[0]-list[9]元素,默认从list[0] = 1开始,每个元素累加1,在这十个元素中随机
// 抽取元素渲染
    'list|1-10': [{
        'id|+1' : 1
    }]
});

console.log(data);

     7. 如果是浏览器运行,代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>01</title>
        <script src="http://mockjs.com/dist/mock.js"></script>
        <script>
            const data = Mock.mock({
                'list|1-10':[{
                    'id|+1':1
                }]
            });
            console.log(data);
            console.log(JSON.stringify(data,null,4));
        </script>
    </head>
    <body>
        
    </body>
</html>

三、mock语法规范

     1. Mock.js的语法规范包括两个部分:数据模板定义规范和数据占位定义规范

     2. 数据模板定义的规范包括3部分:属性名、生成规则和属性值;

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

     3. 其中,字符串、数值有 7 种生成规则,具体如下:

生成规则 说明 实例
min-max 生成min~max之间的字符串 'list | 1-10'
count 生成count个字符串 'list | 5'
min-max,dmin-dmax

生成min~max之间的浮点数,

小数点位数在dmin~dmax之间

'id | 1-10.1-3' : 1
count.dcount

生成count个字符串,

小数点位数为dcount

'id | 8.2' : 1
min-max.dcount //同上  
count.dmin-dmax //同上  
+step 每次的进行都会累加一个值 id | + 1" : 1

还有布尔型,对象,数组等规则

生成规则 说明 实例
布尔值 生成bool值,1/2 概率 true 'flag | 1' : true
布尔值 min-max

生成布尔值,

概率为 min/(min + max)

'flag | 1-10' : true
对象 count

从对象中随机抽取count个属性

'obj | 2' : obj
对象 min - max

从对象中随机抽取min - max 属性

'obj | 1 - 3' : obj
数组 1 获取 1次数组 'arr | 1' : arr
数组count 重复count次组成新数组 'arr | 2' : arr
数组 + 1 累加 'arr | +1' : arr
数组 min - max 重复min - max 次组成新数组 'arr | 1-2' : arr

 5. 也支持函数和正则表达式:

生成规则 说明 实例
函数 支持函数 'fn | 1' :  function
正则

支持正则

'reg | 1' : / [ a - z ] /

6. 数据定义的占位符@,比较好理解,占领属性值的位置;

const data5 = Mock.mock({

    'list|10' : [{

        cname : '@cname',

        city : '@city',

        full : '@cname - @city'

    }]

});

7. 随机占位符

(1) 通过 '@占位符' 这种方式来随机占位符,从而产生多样数据
(2) 有两种方式可以输出这种随机占位符,具体如下:
    //第一种输入占位符的方式
    console.log(Mock.Random.cname());
    //第二种输入占位符的方式
    console.log(Mock.mock("@cname));
    
    ps:如果在输出列表中,直接写 '@cname' 更加的方便快捷

8. 常用的占位符

Mock.js

 9.如果没有你想要的数据,还可以自己扩展

Mock.js

相关标签: Mock Vue React