【Mock.js】详解

news/2024/11/29 1:47:46/

在前后端同时开发的时候,后端接口数据没有出来时,前端可以使用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库


http://www.ppmy.cn/news/1086696.html

相关文章

const用法详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、const用法详解二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能…

Vue项目中使用el-form校验用户输入字段是否符合条件验证-demo

实现效果 实现 <div class"registerWarp"><el-formlabel-position"top"label-width"100px":model"form"ref"ruleFormRef":rules"rulesForm"hide-required-asteriskclass"register-form">&…

常见路由跳转的几种方式

常见的路由跳转有以下四种&#xff1a; 1. <router-link to"跳转路径"> /* 不带参数 */ <router-link :to"{name:home}"> <router-link :to"{path:/home}"> // 更建议用name // router-link链接中&#xff0c;带/ 表示从根…

Python---函数

函数定义&#xff1a; """ def 函数名(传入参数):函数体return 返回值 """ 函数调用&#xff1a; """ 函数名(传入参数) """ 例子&#xff1a; # 不带参 def check():print("欢迎光临\n请进") che…

深入浅出AXI协议(4)——猝发传输

一、前言 在之前的文章中&#xff0c;我们着重介绍了关于AXI4的握手协议它可以使得传输的双方都可以自如地控制传输的速率&#xff0c;我们主要介绍了握手协议出现的3种可能情况。然后对于AXI4交易通信的握手信号的关系做出了介绍&#xff1a;&#xff08;1&#xff09;在AXI4互…

k8s使用ECK(2.4)形式部署elasticsearch+kibana-http协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、准备elasticsearch-cluster.yaml二、部署并测试总结 前言 之前写了eck2.4部署eskibana&#xff0c;默认的话是https协议的&#xff0c;这里写一个使用http…

TIA博途从V15.1版本升级到V16后,下载配方时出错,动作异常终止

TIA博途从V15.1版本升级到V16后,下载配方时出错,动作异常终止 1. 读取配方的时候没有问题,完全正常,没有任何错误提示。 2. 但是在下载的时候,就提示了“出错。动作异常终止” 根据以往的经验分析,有可能是配方变量里面没有相对应的地址时候下载会出错,但是配方画面相对…

综合实训-------成绩管理系统 V1.1

综合实训-------成绩管理系统 V1.1 1、一维数组数据double 2、我们用元素的位置来当学号。 1、录入数据 【5个数据】或【通过文件的方式取数据】 2、显示数据 3、添加一条记录 4、修改一条记录 5、删除一条记录 6、查找一条记录。【输入学号&#xff0c;显示成绩】 7、统计。【…