【Mock.js】详解

在前后端同时开发的时候,后端接口数据没有出来时,前端可以使用mock假数据模拟开发。

一、基础语法

1、数据模板定义

属性值
方法
String

1、'name|min-max': string

2、'name|count': string

1、通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max

2、通过重复 string 生成一个字符串,重复次数等于 count

Number

1、'name|+1': number

2、'name|min-max': number

3、'name|min-max.dmin-dmax': number

1、属性值自动加 1,初始值为 number

2、生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型。

3、生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。

Boolean

1、'name|1': boolean

2、'name|min-max': value

1、随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。

2、随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)

Object

1、'name|count': object

2、'name|min-max': object

1、从属性值 object 中随机选取 count 个属性。

2、从属性值 object 中随机选取 min 到 max 个属性。

Array

1、'name|1': array

2、'name|+1': array

3、'name|min-max': array

4、'name|count': array

1、从属性值 array 中随机选取 1 个元素,作为最终值。

2、从属性值 array 中顺序选取 1 个元素,作为最终值。

3、通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max

4、通过重复属性值 array 生成一个新数组,重复次数为 count

Function
1、'name': function1、执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 'name' 所在的对象。
RegExp
1、'name': regexp1、根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。

2、占位符

@boolean:生成 true 或 false

@natural:生成 自然数     例如:Mock.mock('@natural(60,100)')     //83

@integer:生成 整数     例如:Mock.mock('@natural(-100,100)')     //-83

@float:生成 浮点数     例如:Mock.mock('@float')    //-841542171458324.6

@character:生成 字符         例如: Mock.mock(Mock.mock('@float'))     //'Y'

@string:生成 字符串         例如: Mock.mock('@string')      //"$vi0&Rp"

@range():生成 数组         例如: Mock.mock('@range(10)')     //[0,1,2,3,4,5,6,7,8,9]

@date:生成 日期         例如:Mock.mock('@date("yyyy-MM-dd")')     //"2008-03-30"

@time:生成 时间         例如:Mock.mock('@time')     //"15:39:04"

@datetime:生成 日期时间         例如:Mock.mock('@datetime')    //"1996-10-24 19:38:15"

@now:生成 现在日期时间         例如:Mock.mock('@now')    //"2023-08-31 11:47:28"

Random.now('year')
Random.now('month')
Random.now('week')
Random.now('day')
Random.now('hour')
Random.now('minute')
Random.now('second')

//"2023-01-01 00:00:00"
//"2023-08-01 00:00:00"
//"2023-08-27 00:00:00"
//"2023-08-31 00:00:00"
//"2023-08-31 11:00:00"
//"2023-08-31 11:48:00"
//"2023-08-31 11:48:42"

 @cparagraph:生成 中文文本           例如:Mock.mock('@cparagraph(1, 3)')    //"政例难林经它近育去程如必委意队别究。主法据较半切层候则得响半它位任还。三影认证及老号要美院经往该果等四矿九。"

@ctitle:生成 中文标题                    例如:Mock.mock('ctitle')    //"料边流亲京广"

@cname:生成 中文姓名                  例如:Mock.mock('ctitle')    //"许明"

@url:生成 URL                例如:Mock.mock('@url')              //"http://oqhg.li/ams"

@email:生成 邮箱              例如: Mock.mock('@email')        //"q.daxyoght@hnha.net.cn"

@ip:生成 IP地址           例如: Mock.mock('@ip')                //"198.210.202.239"

@province:生成省份          例如: Mock.mock('@province')        //"海南省"

@id:生成ID                     例如: Mock.mock('@id')                //"140000197005122457"

3、生成随机数据

Mock.Random对象包含了Mock.js中的所有随机数据生成方法。下面是一些常用的方法:

Mock.Random.boolean():生成一个随机的布尔值。
Mock.Random.integer(min, max):生成一个随机的整数,可以指定范围。
Mock.Random.float(min, max, dmin, dmax):生成一个随机的浮点数,可以指定范围和精度。
Mock.Random.string(length):生成一个随机的字符串,可以指定长度。
Mock.Random.name(middle?):生成一个随机的常见英文姓名。
Mock.Random.cname():生成一个随机的常见中文姓名。
Mock.Random.date():生成一个随机的日期。
Mock.Random.time():生成一个随机的时间。
Mock.Random.datetime():生成一个随机的日期时间。
Mock.Random.image(size, background, foreground, format, text):生成一个随机的图片,可以指定大小、背景色、前景色、格式和文字。

二、在Vue中怎么使用

1、安装mockjs和axios:在项目根目录下打开终端,运行以下命令:

npm install mockjs axios --save-dev

 2、创建mock数据:在项目根目录下创建一个mock文件夹,并在其中创建一个mock.js文件,用于编写模拟数据

import Mock from 'mockjs';

Mock.mock('/api/user', 'get', {
  code: 200,
  message: 'success',
  data: {
    id: 1,
    name: 'John'
  }
});     

3、main.js中引入mock数据:在src文件夹下的main.js中引入mock数据,并在Vue实例创建之前拦截请求。可以通过以下代码实现:

import Vue from 'vue';
import axios from 'axios';
import './mock/mock'; // 引入mock数据

Vue.config.productionTip = false;

axios.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

new Vue({
  render: h => h(App),
}).$mount('#app');

4、在代码中发起请求即可

三、小结

mock.js常用于生成随机数据和拦截Ajax请求的js库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PDF.jsMock.js 都是 JavaScript 库,但它们服务于不同的功能。 PDF.js 是一个开源库,用于在浏览器中渲染 PDF 文档,它提供了一种方法来在网页上查看和交互 PDF 文件,无需依赖 Adobe Reader。PDF.js 主要关注于解析和显示 PDF 内容。 Mock.js 则是一个用于单元测试的模拟工具库,它允许开发者在不依赖实际网络请求或后端服务的情况下,模拟 API 接口的行为,以便于编写和测试代码。Mock.js 专注于模拟数据和 API 接口响应。 理论上,PDF.jsMock.js 之间不应该有直接冲突,因为它们的职责不同,一个处理 PDF,另一个处理测试环境中的数据模拟。除非在项目中,你尝试同时使用这两个库,并且它们的内部实现有冲突(例如,都试图修改全局变量),否则它们应该可以并行使用而不会有问题。 不过,如果你在使用过程中遇到问题,可能的情况包括: 1. 资源加载冲突:如果 PDF.jsMock.js 需要相同的网络资源,可能会互相干扰。 2. 名称空间冲突:如果两个库定义了同名的方法或属性,可能会导致代码行为混乱。 3. 扩展了同一功能:比如都尝试重写某个事件处理,可能导致意外的效果。 相关问题: 1. 在什么情况下 PDF.jsMock.js 可能会产生冲突? 2. 如何排查在 PDF.js 中使用 Mock.js 时遇到的冲突? 3. 如何避免 PDF.jsMock.js 的资源或命名空间冲突?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早睡第一人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值