使用Mock.js生成前端測(cè)試數(shù)據(jù)
Mock.js是一個(gè)模擬數(shù)據(jù)生成器,可以讓前端獨(dú)立于后端進(jìn)行開(kāi)發(fā)。如果你正在開(kāi)發(fā)一個(gè)前端頁(yè)面,可是后臺(tái)還沒(méi)有完成供你調(diào)用的Api,并且數(shù)據(jù)格式已經(jīng)確定,那么你就可以使用Mock.js模擬相關(guān)的接口,生成假數(shù)據(jù)來(lái)查看頁(yè)面效果。Mock.js的功能:生成隨機(jī)數(shù)據(jù),攔截 Ajax 請(qǐng)求。
參考文檔:https://github.com/nuysoft/Mock/wiki/Getting-Started
語(yǔ)法規(guī)范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification
安裝
npm install mockjs
創(chuàng)建模擬Api,攔截Ajax請(qǐng)求,返回測(cè)試數(shù)據(jù)
//模擬后臺(tái)
Mock.mock('http://api.com', {
"user|5-10": [{
'name': '@cname', //中文名稱(chēng)
'age|1-100': 100, //100以?xún)?nèi)隨機(jī)整數(shù)
'birthday': '@date("yyyy-MM-dd")', //日期
'city': '@city(true)' //中國(guó)城市
}]
});
發(fā)送ajax請(qǐng)求
//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對(duì)象實(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": "澳門(mén)特別行政區(qū) 離島"
},
{
"name": "賈秀英",
"age": 63,
"birthday": "1973-01-22",
"city": "新疆維吾爾自治區(qū) 伊犁哈薩克自治州"
},
{
"name": "周勇",
"age": 34,
"birthday": "1985-05-21",
"city": "湖南省 衡陽(yáng)市"
}
]
}
示例
// 使用 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生成前端測(cè)試數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mock.js生成測(cè)試數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript知識(shí)點(diǎn)總結(jié)(六)之JavaScript判斷變量數(shù)據(jù)類(lèi)型
這篇文章主要介紹了JavaScript知識(shí)點(diǎn)總結(jié)(六)之JavaScript判斷變量數(shù)據(jù)類(lèi)型的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05
three.js中文文檔學(xué)習(xí)之如何本地運(yùn)行詳解
這篇文章主要給大家介紹了關(guān)于three.js中文文檔學(xué)習(xí)之如何在本地運(yùn)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
JavaScript 對(duì)象合并的幾種方法小結(jié)
本文主要介紹了JavaScript 對(duì)象合并的幾種方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
JS實(shí)現(xiàn)的圖片預(yù)覽插件與用法示例【不上傳圖片】
這篇文章主要介紹了JS實(shí)現(xiàn)的圖片預(yù)覽插件與用法,基于自定義插件uploadPreview.js實(shí)現(xiàn)圖片的預(yù)覽功能,不需要進(jìn)行圖片的上傳,非常簡(jiǎn)便實(shí)用,需要的朋友可以參考下2016-11-11
JavaScript常用標(biāo)簽和方法總結(jié)
JavaScript可以被瀏覽器直接解釋執(zhí)行,它可以更好得減小服務(wù)器壓力,提高程序運(yùn)行效率,下面小編通過(guò)本篇文章給大家分享JavaScript常用標(biāo)簽和方法,需要的朋友一起來(lái)學(xué)習(xí)吧2015-09-09
js下將字符串當(dāng)函數(shù)執(zhí)行的方法
js下將字符串當(dāng)函數(shù)執(zhí)行的方法,需要的朋友可以參考下。2011-07-07
JavaScript模板引擎實(shí)現(xiàn)原理實(shí)例詳解
這篇文章主要介紹了JavaScript模板引擎實(shí)現(xiàn)原理,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript模板引擎原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
不使用XMLHttpRequest實(shí)現(xiàn)異步加載 Iframe和script
運(yùn)用Iframe和script可以實(shí)現(xiàn)簡(jiǎn)單的異步加載,沒(méi)有使用XMLHttpRequest,需要的朋友可以參考下2012-10-10

