如今开发已是先后端分离了,前端和后端能够同时进行开发,互不影响,可是有些时候后端开发的接口慢于前端,致使前端须要等待后端的接口完成才能完成先后端对接,为了解决这个痛点,出现了模拟接口数据的方案,目前行业中主要有四种方案来模拟后端放回的数据:
前端
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'
})复制代码