Mock.js是一个模拟数据生成器,可以让前端独立于后端进行开发。如果你正在开发一个前端页面,可是后台还没有完成供你调用的Api,并且数据格式已经确定,那么你就可以使用Mock.js模拟相关的接口,生成假数据来查看页面效果。Mock.js的功能:生成随机数据,拦截 Ajax 请求。
参考文档:https://github.com/nuysoft/Mock/wiki/Getting-Started
语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification
安装
npm install mockjs
创建模拟Api,拦截Ajax请求,返回测试数据
//模拟后台 Mock.mock('http://api.com', { "user|5-10": [{ 'name': '@cname', //中文名称 'age|1-100': 100, //100以内随机整数 'birthday': '@date("yyyy-MM-dd")', //日期 'city': '@city(true)' //中国城市 }] });
发送ajax请求
//JQuery方式 $.ajax({ url: 'http://api.com', dataType: 'json' }).done(function(data, status, xhr) { console.log( JSON.stringify(data, null, 4) ) }); //原生ajax方式 function myajax(url) { if (window.XMLHttpRequest) { ajax = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!ajax) { window.alert("不能创建XMLHttpRequest对象实例."); return false; } ajax.open("GET", url, true); ajax.send(null); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { console.log(ajax.responseText); } } } myajax('http://api.com');
查看响应
{ "user": [ { "name": "锺丽", "age": 17, "birthday": "1983-11-01", "city": "内蒙古自治区 赤峰市" }, { "name": "陈艳", "age": 25, "birthday": "1973-07-10", "city": "河南省 驻马店市" }, { "name": "冯霞", "age": 59, "birthday": "2010-10-28", "city": "澳门特别行政区 离岛" }, { "name": "贾秀英", "age": 63, "birthday": "1973-01-22", "city": "新疆维吾尔自治区 伊犁哈萨克自治州" }, { "name": "周勇", "age": 34, "birthday": "1985-05-21", "city": "湖南省 衡阳市" } ] }
示例
// 使用 Mock var Mock = require('mockjs') /** * * 数据模板 * 属性名|生成规则: 属性值 */ var data = Mock.mock({ // 属性 list 的值是一个数组,其中含有 1 到 10 个元素 'list|1-10': [{ // 属性 id 是一个自增数,起始值为 1,每次增 1 'id|+1': 1, 'name': '@FIRST' }] }) // 输出结果 console.log(JSON.stringify(data, null, 4))
运行结果
{
"list": [
{
"id": 1,
"name": "Larry"
},
{
"id": 2,
"name": "Edward"
},
{
"id": 3,
"name": "Jessica"
},
{
"id": 4,
"name": "William"
},
{
"id": 5,
"name": "Christopher"
},
{
"id": 6,
"name": "Michael"
},
{
"id": 7,
"name": "Susan"
},
{
"id": 8,
"name": "Shirley"
},
{
"id": 9,
"name": "Angela"
},
{
"id": 10,
"name": "George"
}
]
}
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。