这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战
mock.js介绍
Mock.js官网
mock.js是一款模拟数据生成器,它的宗旨是帮助前端工程师甩开后端,咱们自己去创造数据,以后妈妈再也不用担心你追着后端的小伙伴要接口了。
那是不是说,前端就不需要后端了,当然不是啦。mock.js它仅仅是能帮我们提供一些后端要给我们传输的数据,而这些数据其实是一些模拟的数据,用于给我们前端测试。平常开发中我们有时候要等后端给接口才能做,这个时候就显的比较被动,如果需求不复杂的情况下,我们可以手动模拟一些后台数据,但是这种方法局限性比较大,如果数据量比较庞大,交互比较复杂时,就太低效了,这个时时候你可以通过mock.js模拟你需要的后台数据,能轻松帮你解决问题。
mock.js总共有两大功能,第一个就是我们可以根据数据的模板,生成丰富的模拟数据。第二个功能是它能拦截Ajax请求。mock.js能不需要修改既有代码,就可以拦截Ajax请求,返回模拟的响应数据。
Mock方法拦截Ajax请求
mock.js总共有两大功能,第一个就是我们可以根据数据的模板,生成丰富的模拟数据。第二个功能是它能拦截Ajax请求。前面我们了解如何根据数据的模板,生成丰富的模拟数据。接下来我们了解一下它是如何去拦截Ajax请求的。
它是如何去拦截Ajax请求的,例如在项目中请求的是json文件,自己去创建一个json文件,之后通过Ajax去请求它的地址,请求之后后端要去响应,这时候可以使用Mock.mock()去拦截了,拦截之后mock方法会给你返回数据,返回的数据是之前我们讲的数据模板或者占位符或者Random对象里的方法所生成的数据。接下来我们来了解一下mock方法。
Mock.mock( rurl?, rtype?, template|function(options) )
参数的含义和默认值如下所示
- 参数 rurl:可选。表示需要拦截的 URL,可以是 URL 字符串或 URL 正则。例如
//domain/list.json/、'/domian/list.json'。 - 参数 rtype:可选。表示需要拦截的 Ajax 请求类型。例如
GET、POST、PUT、DELETE等。 - 参数 template:可选。表示数据模板,可以是对象或字符串。例如
{ 'data|1-10':[{}] }、'@EMAIL'。 - 参数 function(options) :可选。表示用于生成响应数据的函数。
- 参数 options:指向本次请求的 Ajax 选项集。
mock方法不同参数的使用
-
Mock.mock( template )
根据数据模板生成模拟数据。
-
Mock.mock( rurl, template )
记录数据模板。当拦截到匹配
rurl的 Ajax 请求时,将根据数据模板template生成模拟数据,并作为响应数据返回。 -
Mock.mock( rurl, function(options) )
记录用于生成响应数据的函数。当拦截到匹配
rurl的 Ajax 请求时,函数function(options)将被执行,并把执行结果作为响应数据返回。 -
Mock.mock( rurl, rtype, template )
记录数据模板。当拦截到匹配
rurl和rtype的 Ajax 请求时,将根据数据模板template生成模拟数据,并作为响应数据返回。 -
Mock.mock( rurl, rtype, function(options) )
记录用于生成响应数据的函数。当拦截到匹配
rurl和rtype的 Ajax 请求时,函数function(options)将被执行,并把执行结果作为响应数据返回。