今天写了一个简单的用户登录功能,虽然很简单,但是能自己完成,使用了axios和mockjs实现交互,还是很开心哒,先说一下mockjs吧
mockjs就像我做毕设时用的虚拟串口工具一样,重点是虚拟,还有工具。首先呢,当不得真,其次,真的还不错的工具啊,说句废话,工具发明出来都是要用的哇,大大解放了人类生产力,这些“工匠”简直太牛了不?!
mockjs是用来解决等不及后台的前端搬砖的问题的,为了让前端能不闲着继续干活,然后充当后台给的接口,拦截前端请求,作为补偿,再给前端一个很真实的假数据。
我写的项目以node作为开发环境,所以用npm install mockjs就可以安装了。
其次在使用时,可以像下边这样:
var Mock = require('mockjs')
Mock.mock('http://baidu.com/user/login','post',{a:1})
Mock.mock就是通过url和方法获取要被拦截的那个倒霉蛋请求的,然后再将第三个参数里的内容给他让他拿着去玩咯,完成任务。
然后看一下,请求部分的代码:
axios.post('http://baidu.com/user/login',param)
.then(res => {console.log(res.data)})
当然了,代码很简单,但我觉得原理是可以讲清楚的,可以对比一下,url是相同的,方法是相同的就好了。最后控制台就可以打印出请求的数据了,也就是这儿的{a:1}了,嗯,就是这样。
然后第三个参数里的数据模板定义规范如下:
由属性名,生成规则以及属性值构成,其中:
- 属性名 和 生成规则 之间用竖线
|
分隔。 - 生成规则 是可选的。
- 生成规则 有 7 种格式:
'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value
这些具体参考https://github.com/nuysoft/Mock/wiki/Syntax-Specification
除过上边用的Mock.mock方法,还有Mock.setup(settings)方法,用来配置拦截请求时的行为,支持的配置项:timeout。
指定被拦截的 Ajax 请求的响应时间,单位是毫秒。值可以是正整数,例如 400
,表示 400 毫秒 后才会返回响应内容;也可以是横杠 '-'
风格的字符串,例如 '200-600'
,表示响应时间介于 200 和 600 毫秒之间。默认值是'10-100'
。
Mock.setup({
timeout: 400
})
Mock.setup({
timeout: '200-600'
})
官网上都有的。目前,接口 Mock.setup( settings )
仅用于配置 Ajax 请求,将来可能用于配置 Mock 的其他行为。(虽然我也不知道还有什么其他行为)
然后,就到另外一个hin有用的方法了Mock.Random,顾这个英文名就可以思义,随机,哈哈,就是用来生成随机数据的。
具体能生成的东西还是见更详细的网页吧。
最后两个方法,Mock.valid(template,data)校验真实数据data是否与数据模板template相匹配;Mock.toJSONSchema(template)把 Mock.js 风格的数据模板 template
转换成 JSON Schema。
就酱紫啦,我是还在扑腾的小鸟,有错请指正。