当前位置: 首页 > article >正文

Mock.js的学习使用

Mock.js

介绍:是一个功能强大的JavaScript库,用于模拟接口请求和生成随机数据。

作用

  1. 帮助开发者独立开发、前后端分离
  2. 快速原型验证
  3. 测试异常情况
  4. 增加单元测试的真实性

原理:

通过拦截XMLHttpRequest或fetch等网络请求,根据定义的规则返回模拟的数据。

当开发者发起一个请求时,Mock.js会检查匹配的规则,并返回相应的模拟数据。

前端开发就可以在没有真实接口的情况下进行开发和调试。

使用方法:

  • 安装:

    npm install mockjs --save-dev
    
  • 引用

    import Mock from 'mockjs';
    

举例:

使用Mock.mock()方法定义接口的模拟数据,模拟一个GET请求的用户接口

Mock.mock('/api/user', 'get', {
  code: 200,
  data: {
    id: '@id', 	              //  @id 表示生成一个随机的唯一标识符
    name: '@name', 			  //  @name 表示生成一个随机的人名
    age: '@integer(20, 50)',  //  @integer(20, 50) 表示生成一个 20 到 50 之间的随机整数
  },
});

语法规范

1、数据模板 定义规范:

​ 数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值

// 属性名   name
// 生成规则 rule
// 属性值   value
'name|rule': value
  • 属性值 中可以含有 @占位符
  • 属性值 还指定了最终值的初始值和类型。
  • 属性值有:StringNumberBooleanObjectArrayFunctionRegExpPath几种类型。不同的类型,生成规则会有不同的意义
  • 生成规则 的含义需要依赖 属性值 的类型才能确定。
  • 生成规则 有 7 种格式:
'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value // 如果value的类型是number,生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留dmin到dmax位。
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value
2、数据占位符 定义规范:

​ 格式:

@占位符
@占位符(参数 [, 参数])
  1. @ 来标识其后的字符串是 占位符
  2. 占位符 引用的是 Mock.Random 中的方法。
  3. 通过 Mock.Random.extend() 来扩展自定义占位符。
  4. 占位符 也可以引用 数据模板 中的属性。
  5. 占位符 会优先引用 数据模板 中的属性。
  6. 占位符 支持 相对路径绝对路径

除了常见的 @id@name 等占位符,还有以下一些常用占位符:

@boolean:生成一个随机的布尔值。
@integer:生成一个随机的整数。
@float:生成一个随机的浮点数。
@date:生成一个随机的日期。
@image:生成一个随机的图片 URL。
@sentence:生成一个随机的句子。
@paragraph:生成一个随机的段落。
@email:生成一个随机的邮箱地址。
@url:生成一个随机的 URL 地址。

http://www.kler.cn/a/422190.html

相关文章:

  • 【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
  • LeetCode 64. 最小路径和(HOT100)
  • 一种多功能调试工具设计方案开源
  • Figma入门-自动布局
  • 新手学习:网页前端、后端、服务器Tomcat和数据库的基本介绍
  • redis核心命令全局命令 + redis 常见的数据结构 + redis单线程模型
  • 5G学习笔记之随机接入
  • 基于Java Springboot校园导航微信小程序
  • 658.找到K个最接近的元素(双指针)
  • 【深度学习】—CNN卷积神经网络 从原理到实现
  • 社区团购中 2+1 链动模式商城小程序的创新融合与发展策略研究
  • Linux 网卡收包流程如下
  • 手机ip地址取决于什么?可以随便改吗
  • 20240921解决使用PotPlayer在WIN10电脑播放4K分辨率10bit的视频出现偏色的问题
  • stable diffusion实践操作-大模型介绍:SD的发展历史,SD1.5和SDXL之间的差别
  • DVWA靶场——XSS(Stored)
  • 数据库python连接测试
  • 学习笔记050——SpringBoot学习1
  • docker使用(镜像、容器)
  • sheng的学习笔记-【中】【吴恩达课后测验】Course 5 - 序列模型 - 第三周测验 - 序列模型与注意力机制
  • 用于LiDAR测量的1.58um单芯片MOPA(一)
  • Y20030018基于Java+Springboot+mysql+jsp+layui的家政服务系统的设计与实现 源代码 文档
  • [Redis#9] stream | geospatial | HyperLogLog | bitmaps | bitfields
  • Create Stunning Word Clouds with Ease!
  • 【短视频矩阵系统==saas技术开发】
  • 移动机器人课程建图实验-ROSbug汇总