如今開發已是先後端分離了,前端和後端能夠同時進行開發,互不影響,可是有些時候後端開發的接口慢於前端,致使前端須要等待後端的接口完成才能完成先後端對接,爲了解決這個痛點,出現了模擬接口數據的方案,目前行業中主要有四種方案來模擬後端放回的數據:
前端
Mock.js:生成隨機數據,攔截 Ajax 請求,Mock.js 經過覆蓋和模擬原生 XMLHttpRequest 的行爲來攔截 Ajax 請求,「轉發」到本地文件,所謂轉發,其實就是讀取本地 mock文件,並以json或者script等格式返回給瀏覽器。
Mock.js具備如下幾個特色:ajax
# 推薦經過npm安裝
npm install mockjs複製代碼
// 首先在js文件中引進
var Mock = require('mockjs')
var data = Mock.mock({
// 屬性 list 的值是一個數組,其中含有 1 到 10 個元素
'list|1-10': [{
// 屬性 id 是一個自增數,起始值爲 1,每次增 1
'id|+1': 1
}]
})複製代碼
主要能夠分紅如下兩個方面:npm
數據模板中的每一個屬性由 3 部分構成:屬性名、生成規則、屬性值:'name|rule': value
json
Mock.mock({
"object|2": {
"310000": "上海市",
"320000": "江蘇省",
"330000": "浙江省",
"340000": "安徽省"
}
})複製代碼
輸出爲:後端
{
"object": {
"320000": "江蘇省",
"330000": "浙江省"
}
}複製代碼
數據佔位符定義規範 DPD
佔位符 只是在屬性值字符串中佔個位置,並不出如今最終的屬性值中。
數組
能夠經過Mock.setup( settings ),配置攔截 Ajax 請求時的行爲。支持的配置項有:timeout
指定被攔截的 Ajax 請求的響應時間,單位是毫秒。值能夠是正整數,例如 400,表示 400 毫秒 後纔會返回響應內容;也能夠是橫槓 '-' 風格的字符串,例如 '200-600',表示響應時間介於 200 和 600 毫秒之間。默認值是'10-100'。瀏覽器
Mock.setup({
timeout: 400
})
Mock.setup({
timeout: '200-600'
})複製代碼