mock.js 使用说明( 简单而有效 )
mock.js 使用说明( 简单而有效 )
一、Mock.js 初入门径
1. 什么是mock.js?
Mock.js (官网http://mockjs.com/)是一款模拟数据生成器,旨在帮助前端攻城狮独立
于后端进行开发,帮助编写单元测试。提供了以下模拟功能:
1,根据数据模板生成模拟数据
2,模拟 Ajax 请求,生成并返回模拟数据
3,基于 HTML 模板生成模拟数据
Mock.js 具有以下特点:
1.前后端分离,让前端攻城师独立于后端进行开发。
2.增加单元测试的真实性
3.通过随机数据,模拟各种场景。
4.开发无侵入
5.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据。
6.用法简单
7.符合直觉的接口
8.数据类型丰富
9.支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。
10.方便扩展
11.支持支持扩展更多数据类型,支持自定义函数和正则。
在进行前后端分离式的开发中,前端负责制作页面和显示数据,后端负责提供数据,前端通过后端提供的RESTFul规范的接口来获取 JSON 格式的数据:

对于前端开发人员来说,必须要从服务器获取数据,所以就只能等待后端开发好接口之后,前端才可以获取数据,这会影响前端开发的效果。
聪明的前端开发人员就会想:如果前端可以自己模拟出数据,那么在开发时就不需要服务器提供的数据了。于是就出现了mockjs
2. Mock.js安装
1)使用CDN
2)使用本地文件
下载Mock.js: https://github.com/nuysoft/Mock
导入到本地页面使用:
引入:
<script src="js/mock-min.js"></script>
3,mockjs语法
“id”:“@id”
“star|1-2”:“⭐” 字符串重复1-2次
“price|100-200.2-3”小数点2-3位
“data | 10"”;[{name:“名称”)]数组的内容重复10遍
“live | 1”:true,随机返回true,false
“tel”:/13\d{9}/ 手机号码
“des”:function(){ return this.start+this.price}
“name”:”@cname" 表示中文名称
“address”:“@country(true)” 地址
“description”:“@cparagraph(1,3)”随机段落2-3行
“pic”:@datalmage(200x100);图示”

4. Mock.js入门案例
3.1. 模拟数据
代码展示:
// 导入mock
import Mock from 'mockjs';
// 拦截ajax,生成伪数据,拦截地址“ http://abc.com/v5/list ”
// Mock.mock("http://abc.com/v5/list",{
// name:"mumu",
// age:18
// })
Mock.mock(/\/v5\/user/, {
code: 0,
msg: "成功",
"data|10": [{
"id|+1": 1024,
"name": "@cnam",
"age|1-100": 1,
"proce|25-50.2-5": 1,
"score|1-5": "☆",
"title": "@ctitle(8,14)",
"description": "@cparagraph",
"isLog|1": true,
"friend|2-10": ["小红", "小绿", "小蓝"],
"des|2": {
"eye": 1,
"hand": 2,
"job": "terracher"
},
"tel": /1\d{10}/,
"email": /[a-z]{2,6}@(126|163|qq)\.(com|cn|net)/,
"canMerry": function() {
if (this.age > 22) {
return true;
} else {
return false
}
},
"day": "@date('yyyy-MM-dd')",
"time": "@time('HH:mm:ss')",
"add": "'@county(true)",
"avatar": "@dataImage('200x100','')"
}]
})
Mock.mock("/\/v5\/list/", {
name: "mumu",
age: 18
})
Mock.mock("/\/v5\/jok/", function(option) {
return {
code: 0,
msg: "参数成功",
data: {
title: "信息标题",
content: "内容",
...JSON.parse(option.body)
}
}
})
Mock.mock(/\/api\/app\/v3\/category/, {
"message": "success",
"code": 200,
"data": {
"top": [{
"cat_id": 0,
"cat_name": "\u63a8\u8350\u5206\u7c7b"
}, {
"cat_id": 1,
"cat_name": "\u6587\u5316\u7eb8"
}, {
"cat_id": 2,
"cat_name": "\u5305\u88c5\u7eb8"
}, {
"cat_id": 3,
"cat_name": "\u827a\u672f\u7eb8"
}, {
"cat_id": 4,
"cat_name": "\u5de5\u4e1a\u7528\u7eb8"
}, {
"cat_id": 7,
"cat_name": "\u767d\u5361\u7eb8"
}, {
"cat_id": 11,
"cat_name": "\u590d\u5370\u7eb8"
}, {
"cat_id": 12,
"cat_name": "\u65b0\u95fb\u7eb8"
}, {
"cat_id": 14,
"cat_name": "\u9ed1\u5361\u7eb8"
}, {
"cat_id": 15,
"cat_name": "\u53cc\u80f6\u7eb8"
}, {
"cat_id": 6,
"cat_name": "\u74e6\u695e\u7eb8"
}, {
"cat_id": 94,
"cat_name": "\u519c\u526f\u4ea7\u54c1"
}, {
"cat_id": 86,
"cat_name": "\u65e0\u78b3\u7eb8"
}, {
"cat_id": 89,
"cat_name": "\u4e0d\u5e72\u80f6"
}, {
"cat_id": 91,
"cat_name": "\u677f\u7247"
}],
"recommend": {
"categorys": [{
"cat_id": 35,
"cat_name": "\u8f7b\u6d82\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/159514020603cf70ec9a2f3f952f2e18.jpg"
}, {
"cat_id": 38,
"cat_name": "\u65b0\u95fb\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/f45dbe288b1cc478fe507ad054317267.jpg"
}, {
"cat_id": 51,
"cat_name": "\u767d\u5e95\u94dc\u7248\u5361\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/169ef046e96665819ba91d9aee18f701.jpg"
}, {
"cat_id": 52,
"cat_name": "\u7070\u5e95\u94dc\u7248\u5361\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/16178dcc248c8098d7d460654f900ba5.jpg"
}, {
"cat_id": 1,
"cat_name": "\u6587\u5316\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/a5d9f2db2abed10a1306bc7495601801.jpg"
}, {
"cat_id": 2,
"cat_name": "\u5305\u88c5\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/bad951f04bbdd4c9b0f4bffa298b9042.jpg"
}, {
"cat_id": 3,
"cat_name": "\u827a\u672f\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/36e7ec095717b72014cfd53752baa01d.jpg"
}, {
"cat_id": 4,
"cat_name": "\u5de5\u4e1a\u7528\u7eb8",
"logo": "https:\/\/cdn.zdoodoo.com\/aab27872e1e188d2fe070d2a40051c9a.alicdn"
}, {
"cat_id": 7,
"cat_name": "\u767d\u5361\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/3c294fc36b3e2e794d765da2ee60f6d1.jpg"
}, {
"cat_id": 11,
"cat_name": "\u590d\u5370\u7eb8",
"logo": "https:\/\/cdn.zdoodoo.com\/e3deb62e3f2c77c9e531c435cf075db4.jpg"
}, {
"cat_id": 12,
"cat_name": "\u65b0\u95fb\u7eb8",
"logo": "https:\/\/cdn.zdoodoo.com\/40b89317a8230db4e582541649b4c93d.jpg"
}, {
"cat_id": 14,
"cat_name": "\u9ed1\u5361\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/cf609a216df70af19f6247d518d0b5a7.jpg"
}, {
"cat_id": 15,
"cat_name": "\u53cc\u80f6\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/08a4f33d564cb2727a834f3f807a4706.jpg"
}, {
"cat_id": 6,
"cat_name": "\u74e6\u695e\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/5443180758be1cb65077ae9aff595796.jpg"
}, {
"cat_id": 69,
"cat_name": "\u9759\u7535\u590d\u5370\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/26bbb6338c0ed7ab3ed22781707e9827.jpg"
}, {
"cat_id": 70,
"cat_name": "\u7eb8\u7bb1",
"logo": "https:\/\/cdn.zdoodoo.com\/64dcc60944cbc3bc6af538aa1eeb2835.alicdn"
}, {
"cat_id": 71,
"cat_name": "\u7070\u5e95\u767d\u677f\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/58f3efbe6b60b7e8cdc67c08503d489a.jpg"
}, {
"cat_id": 72,
"cat_name": "\u7bb1\u677f\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/beeaf57e831a5dde998341e2493cd31a.jpg"
}, {
"cat_id": 36,
"cat_name": "\u94dc\u7248\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/44cf483c3ebb41c8bc859be63f515cb3.jpg"
}, {
"cat_id": 42,
"cat_name": "\u725b\u76ae\u5361\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/b9fb9f5c0697168123e454400419f822.jpg"
}, {
"cat_id": 43,
"cat_name": "\u7bb1\u677f\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/39aec0797e9ff59dbbe024df2133cb04.jpg"
}, {
"cat_id": 45,
"cat_name": "\u74e6\u695e\u7eb8\u677f",
"logo": "https:\/\/cdn.toodudu.com\/dae179c37ce76eb89eb4bf913cca3898.jpg"
}, {
"cat_id": 66,
"cat_name": "\u80f6\u7248\u7eb8",
"logo": "https:\/\/cdn.toodudu.com\/a5e9549092026564e7958231727e0a74.jpg"
}],
"brands": [{
"brand_id": 13,
"brand_name": "\u4f73\u76ca\u7eb8\u4e1a",
"brand_logo": "https:\/\/cdn.toodudu.com\/13d295fdff8f0a5078ee97e10b6f702c.jpg"
}, {
"brand_id": 2,
"brand_name": "\u535a\u5927\u7eb8\u4e1a",
"brand_logo": "https:\/\/cdn.toodudu.com\/2d4b1900354a879d459cab54cd7ff5cc.jpg"
}, {
"brand_id": 7,
"brand_name": "\u53cb\u987a\u7eb8\u4e1a",
"brand_logo": "https:\/\/cdn.toodudu.com\/979753d9e2229c5146ba8c74efc095fc.jpg"
}, {
"brand_id": 9,
"brand_name": "\u6d2a\u56fe",
"brand_logo": "https:\/\/cdn.toodudu.com\/45c561db526f3dc8b9aadeb94bf35965.jpg"
}, {
"brand_id": 19,
"brand_name": "\u6c38\u6052\u7eb8\u4e1a",
"brand_logo": ""
}, {
"brand_id": 22,
"brand_name": "\u6c5f\u95e8\u661f\u8f89\u9020\u7eb8",
"brand_logo": "https:\/\/cdn.toodudu.com\/ee42e315348da804381125c5eb5b0cb2.png"
}, {
"brand_id": 137,
"brand_name": "\u6c5f\u82cf\u76db\u5b9d\u4ed1\u7eb8\u4e1a",
"brand_logo": ""
}, {
"brand_id": 138,
"brand_name": "\u9e3f\u5a1c\u7eb8\u4e1a",
"brand_logo": ""
}]
},
"banner": [{
"id": 239,
"cateid": 71,
"image": "https:\/\/cdn.zdoodoo.com\/2020\/04\/24\/FwQyo3sKuwEnb2lkJ8s26O5vLRr8bIXHbICtiNtt.jpeg",
"title": null,
"url": "",
"web_url": "",
"app_path": "",
"web_path": "",
"mini_url": "",
"theme_color": "rgb(118, 198, 241)"
}]
}
}, )
效果展示

更多推荐


所有评论(0)