Mock.js:生成随机数据,拦截 Ajax 请求。官方地址:http://mockjs.com/
第一个demo
demo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>mockjs demo</title>
</head>
<body>
</body>
<!-- 引入jquery和mock,这里用在线引入,也可以先下载对应js文件然后本地引入 -->
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://mockjs.com/dist/mock.js"></script>
<script>
// 使用 Mock
var data = Mock.mock({
'list|1-10': [{
'id|+1': 1
}]
});
$('<pre>').text(JSON.stringify(data, null, 4))
.appendTo('body')
</script>
</html>
浏览器访问效果
这里的核心是
Mock.mock({
'list|1-10': [{
'id|+1': 1
}]
});
语法格式:Mock.mock( template )
作用:根据数据模板生成模拟数据。
template:数据模板,数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:
案例中:
// list为属性名
// 1-10为生成规则
// 冒号后面为属性值
'list|1-10': [{
'id|+1': 1
}]
注意:
属性名 和 生成规则 之间用 | 分隔。
生成规则 是可选的。
生成规则 有 7 种格式:
'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value
生成规则 的 含义 需要依赖 属性值 才能确定。
属性值 中可以含有 @占位符。
属性值 还指定了最终值的初始值和类型。
发起ajax请求
发起ajax请求demo
ajax-demo1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>mockjs demo</title>
</head>
<body>
<button onclick="getData()">点我</button>
</body>
<!-- 引入jquery和mock -->
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://mockjs.com/dist/mock.js"></script>
<script>
var obj = {'aa':'11', 'bb':'22', 'cc':'33', 'dd':'44'};
// Mock响应模板
var data = Mock.mock('http://test.com', {
"user|1-3": [{ // 随机生成1到3个数组元素
'name': '@cname', // 中文名称
'id|+1': 88, // 属性值自动加 1,初始值为88
'age|18-28': 0, // 18至28以内随机整数, 0只是用来确定类型
'birthday': '@date("yyyy-MM-dd")', // 日期
'city': '@city(true)', // 中国城市
'color': '@color', // 16进制颜色
'isMale|1': true, // 布尔值
'isFat|1-2': true, // true的概率是1/3
'fromObj|2': obj, // 从obj对象中随机获取2个属性
'fromObj2|1-3': obj, // 从obj对象中随机获取1至3个属性
'brother|1': ['jack', 'jim'], // 随机选取 1 个元素
'sister|+1': ['jack', 'jim', 'lily'], // array中顺序选取元素作为结果
'friends|2': ['jack', 'jim'] // 重复2次属性值生成一个新数组
},{
'gf': '@cname'
}]
});
</script>
<script>
function getData(){
$.ajax({
url: 'http://test.com',
type: 'get',
dataType: 'json'
}).done(function(data, status, xhr) {
console.log(JSON.stringify(data, null, 4));
});
}
</script>
</html>
浏览器访问,点击按钮,查看控制台效果
控制台看到生成了数据。
参考:
https://blog.51cto.com/u_15127591/3844430?articleABtest=1
完成!enjoy it!