前端数据模拟 Mock.js 学习笔记

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 会拦截这些请求并返回模拟数据

参考

14.前端数据模拟MockJS_哔哩哔哩_bilibili

Mock.js 超全 超详细总结 保姆级别的教程_mockjs-CSDN博客

相关推荐
layman05287 分钟前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔8 分钟前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李9 分钟前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN11 分钟前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒13 分钟前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库15 分钟前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
方也_arkling22 分钟前
Element Plus主题色定制
javascript·sass
电商API_1800790524724 分钟前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
晓晓莺歌25 分钟前
vue3某一个路由切换,导致所有路由页面均变成空白页
前端·vue.js
2601_9498095944 分钟前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter