使用Mock.js生成前端測試數(shù)據(jù)
Mock.js是一個(gè)模擬數(shù)據(jù)生成器,可以讓前端獨(dú)立于后端進(jìn)行開發(fā)。如果你正在開發(fā)一個(gè)前端頁面,可是后臺還沒有完成供你調(diào)用的Api,并且數(shù)據(jù)格式已經(jīng)確定,那么你就可以使用Mock.js模擬相關(guān)的接口,生成假數(shù)據(jù)來查看頁面效果。Mock.js的功能:生成隨機(jī)數(shù)據(jù),攔截 Ajax 請求。
參考文檔:https://github.com/nuysoft/Mock/wiki/Getting-Started
語法規(guī)范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification
安裝
npm install mockjs
創(chuàng)建模擬Api,攔截Ajax請求,返回測試數(shù)據(jù)
//模擬后臺
Mock.mock('http://api.com', {
"user|5-10": [{
'name': '@cname', //中文名稱
'age|1-100': 100, //100以內(nèi)隨機(jī)整數(shù)
'birthday': '@date("yyyy-MM-dd")', //日期
'city': '@city(true)' //中國城市
}]
});
發(fā)送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("不能創(chuàng)建XMLHttpRequest對象實(shí)例.");
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');
查看響應(yīng)
{
"user": [
{
"name": "鍾麗",
"age": 17,
"birthday": "1983-11-01",
"city": "內(nèi)蒙古自治區(qū) 赤峰市"
},
{
"name": "陳艷",
"age": 25,
"birthday": "1973-07-10",
"city": "河南省 駐馬店市"
},
{
"name": "馮霞",
"age": 59,
"birthday": "2010-10-28",
"city": "澳門特別行政區(qū) 離島"
},
{
"name": "賈秀英",
"age": 63,
"birthday": "1973-01-22",
"city": "新疆維吾爾自治區(qū) 伊犁哈薩克自治州"
},
{
"name": "周勇",
"age": 34,
"birthday": "1985-05-21",
"city": "湖南省 衡陽市"
}
]
}
示例
// 使用 Mock
var Mock = require('mockjs')
/**
*
* 數(shù)據(jù)模板
* 屬性名|生成規(guī)則: 屬性值
*/
var data = Mock.mock({
// 屬性 list 的值是一個(gè)數(shù)組,其中含有 1 到 10 個(gè)元素
'list|1-10': [{
// 屬性 id 是一個(gè)自增數(shù),起始值為 1,每次增 1
'id|+1': 1,
'name': '@FIRST'
}]
})
// 輸出結(jié)果
console.log(JSON.stringify(data, null, 4))
運(yùn)行結(jié)果
{
"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"
}
]
}
到此這篇關(guān)于使用Mock.js生成前端測試數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mock.js生成測試數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript降低代碼圈復(fù)雜度優(yōu)化技巧
當(dāng)一個(gè)項(xiàng)目經(jīng)過持續(xù)迭代,不斷增加功能,逐漸變成一個(gè)復(fù)雜的產(chǎn)品時(shí),新功能的開發(fā)變得相對困難,其中一個(gè)很大的原因是代碼復(fù)雜度高,導(dǎo)致可維護(hù)性和可讀性都很差,本文將從前端JavaScript的角度出發(fā),介紹一些有效的方法和技巧來優(yōu)化前端代碼的圈復(fù)雜度2023-10-10
支付寶小程序自定義彈窗dialog插件的實(shí)現(xiàn)代碼
支付寶小程序官方提供的alert提示框、dialog對話框、model彈窗功能比較有限,有些都不能隨意自定義修改的。這篇文章主要介紹了支付寶小程序自定義彈窗dialog插件的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-11-11
javascript計(jì)算當(dāng)月剩余天數(shù)(天數(shù)計(jì)算器)示例代碼
本文介紹了利用Javascript在網(wǎng)頁上計(jì)算當(dāng)前月份的剩余天數(shù)的方法,大家參考使用吧2014-01-01

