MockJS的使用心得

618 阅读2分钟

一、为什么使用MockJS

作为前端的小伙伴,开发效率都是刚刚的,当前端页面完成时,后端接口往往都还未完成,怎么样才能提升效率呢?

1.我们可以使用json文件,或者直接在代码中使用默认数据(过于不真实)
2.使用一些开源的接口数据平台(每次都要打开链接)
3.使用mockjs模拟后端接口

二、MockJS优点

1.前后端分离
2.可随机生成大量的数据
3.用法简单
4.数据类型丰富
5.开发无侵入
6.方便扩展

三、MockJs的使用

# 安装
npm install mockjs
// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
    // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
    'list|1-10': [{
        // 属性 id 是一个自增数,起始值为 1,每次增 1
        'id|+1': 1
    }]
})
// 输出结果
console.log(JSON.stringify(data, null, 4))

四、 MockJS示例

1. 数据模板定义

Mock.mock({
   "string|1-10":"★",
   "number|+1": 202,
   "number|1-100": 100,
   "boolean|1": true,
   "object|2": { "310000": "上海市", "320000": "江苏省", "330000": "浙江省", "340000": "安徽省" },
   "array|+1": [ "AMD", "CMD", "UMD" ],
   "array|1-2": ["Hello","Mock.js","!"],
   'regexp': /[a-z][A-Z][0-9]/,
   'foo': 'Syntax Demo',
   'name': function() { return this.foo },
   "foo": "Hello", "nested": { "a": { "b": { "c": "Mock.js" } } }, "absolutePath": "@/foo @/nested/a/b/c"
})

数据模板定义类型有8种(String,Number,Boolean,Object,Array,Funtion,RegExp,Path),类型判断是根据后面的参数判断的。其中number,array支持|+1,分别代表着数值+1和索引+1。

2.数据占位符定义

定义符定义
@boolean(min,max)布尔值
@natural(min,max)自然数
@integer(min,max)数字
@float(min,max,dmin,dmax)浮点数
@string(pool,min,max)字符串
@range(start, stop, step)数组
@date(format)日期
@time(format)时间
@datetime(format)日期时间
@image(size, background, foreground, format, text)图片
@color()颜色
@word(min,max)英文
@title(min,max)英文标题
@ctitle()标题
@name()英文名字
@cname()中文名字
@cparagraph(min,max)中文句子
@csentence(min,max)单个中文句子
@province()
@city()
@county()
@email()邮箱

五、Mock.setup()

指定被拦截的 Ajax 请求的响应时间,单位是毫秒。值可以是正整数,例如 400,表示 400 毫秒 后才会返回响应内容;也可以是横杠 '-' 风格的字符串,例如 '200-600',表示响应时间介于 200 和 600 毫秒之间。默认值是'10-100'

六、 Mock 网络请求

Mock.mock( rurl, rtype, template )

Mock.mock(url,"GET",{
    "id|+1":1
})
axios.get(url).then(r=>console.log(r))