mock.js介绍
Mock.js是一款前端开发中拦截Ajax请求再生成随机数据响应的工具,可以用来模拟服务器响应
- 优点是:
- 非常方便简单,无侵入性,基本覆盖常用的接口数据类型
- 支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等
- 缺点是:
- 不支持文件
- 不是异步的
安装的话直接用npm install mockjs这条命令行即可
mockjs可以模拟前端请求后端返回数据的过程,那么在前端开发过程中,我们就不需要等待后端写好接口就能写关于axios的代码来请求数据,当后端开发好后直接移除mockjs即可不需要修改过多的代码,对于前端开发来说是非常方便的
核心方法
Mock.mock(rurl?, rtype?, template|function(options))
- rurl:表示需要拦截的URL,可以是URL字符串或URL正则
- rtype:表示要拦截的Ajax请求类型,例如get、post、put请求等
- template:表示数据模板,可以是对象或者是字符串
- function:表示用于生成响应式数据的函数
同时mock也可以设置延时请求到数据:Mock.setup({ timeout : 400}),其中400是表示延迟400毫秒,如果400被'200-600'替代了,那么意思就是延迟200毫秒到600毫秒请求数据
数据生成规则
mock的语法规范包含两层规范:数据模板(DTD),数据占位符(DPD)
数据模板中的每个属性由三部分构成:属性名name、生成规则rule、属性值value
'name|rule' : value
属性名和生成规则之间用竖线 | 分割,生成规则是可选的,有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
当然还有更多的写法来规定数据生成,具体可以找ai写或者看官方文档写就好了
基本使用
在项目src目录下创建mock目录,新建index.js文件
然后在index.js文件中写入需要模拟生成的数据即可
示例:
最后,我们需要在main.js里面引入我们写好的mock目录下的js文件,因为前面定义mock目录下js文件名字为index.js,所以会自动导入index.js,不需要写成 import './mock/index' 这样
然后在需要请求数据的组件中调用mock.js中模拟的数据接口,这时返回的response就是mock.js中用Mock.mock('url' ,data)中设置的data
注意:如果你还没有开发后端接口,axios
请求的接口路径就是你在 Mock.js 中定义的路径。Mock.js 会拦截这些请求并返回模拟数据