使用Mock.js生成前端測試數(shù)據(jù)
Mock.js是一個模擬數(shù)據(jù)生成器,可以讓前端獨立于后端進行開發(fā)。如果你正在開發(fā)一個前端頁面,可是后臺還沒有完成供你調(diào)用的Api,并且數(shù)據(jù)格式已經(jīng)確定,那么你就可以使用Mock.js模擬相關(guān)的接口,生成假數(shù)據(jù)來查看頁面效果。Mock.js的功能:生成隨機數(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)隨機整數(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對象實例."); 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 的值是一個數(shù)組,其中含有 1 到 10 個元素 'list|1-10': [{ // 屬性 id 是一個自增數(shù),起始值為 1,每次增 1 'id|+1': 1, 'name': '@FIRST' }] }) // 輸出結(jié)果 console.log(JSON.stringify(data, null, 4))
運行結(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)一個項目經(jīng)過持續(xù)迭代,不斷增加功能,逐漸變成一個復(fù)雜的產(chǎn)品時,新功能的開發(fā)變得相對困難,其中一個很大的原因是代碼復(fù)雜度高,導(dǎo)致可維護性和可讀性都很差,本文將從前端JavaScript的角度出發(fā),介紹一些有效的方法和技巧來優(yōu)化前端代碼的圈復(fù)雜度2023-10-10支付寶小程序自定義彈窗dialog插件的實現(xiàn)代碼
支付寶小程序官方提供的alert提示框、dialog對話框、model彈窗功能比較有限,有些都不能隨意自定義修改的。這篇文章主要介紹了支付寶小程序自定義彈窗dialog插件的實現(xiàn)代碼,需要的朋友可以參考下2018-11-11javascript計算當(dāng)月剩余天數(shù)(天數(shù)計算器)示例代碼
本文介紹了利用Javascript在網(wǎng)頁上計算當(dāng)前月份的剩余天數(shù)的方法,大家參考使用吧2014-01-01