Vue-admin工作整理(十八):Mock的使用方法
# Mock简明文档 | ||
## Mock.mock() | ||
- Mock.mock( requestUrl?, requestType?, template|function(options) ) | ||
- Mock.mock( template ) | ||
- Mock.mock( requestUrl, template ) | ||
- Mock.mock( requestUrl, requestType, template ) | ||
- Mock.mock( requestUrl, requestType, function(options) ) | ||
> requestUrl: 要拦截的URL,字符串或正则表达式<br> | ||
equestType: 要拦截的请求类型,get/post/put/delete/options...<br> | ||
template: 数据模板<br> | ||
function(options):生成响应数据的函数,options --> { url, type, body } | ||
---- | ||
## 语法规范 | ||
### 数据模板定义 | ||
> 数据模板中每个属性由3部分组成: **属性名|生成规则:属性值** | ||
1. 'name|min-max': value | ||
2. 'name|count': value | ||
3. 'name|min-max.dmin-dmax': value | ||
4. 'name|min-max.dcount': value | ||
5. 'name|count.dmin-dmax': value | ||
6. 'name|count.dcout': value | ||
7. 'name|+step': value | ||
*属性值*中可以包含@占位符 | ||
*属性值*还指定了最终值的初始值和类型 | ||
#### 1.属性值是字符串 | ||
1. 'name|min-max': string | ||
> 通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max | ||
2. 'name|count': string | ||
> 通过重复 string 生成一个字符串,重复次数等于 count | ||
#### 2.属性值是数字 | ||
1. 'name|+1': number | ||
> 属性值自动加 1,初始值为 number | ||
2. 'name|min-max': number | ||
> 生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型 | ||
3. 'name|min-max.dmin-dmax': number | ||
> 生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位 | ||
#### 3.属性值是布尔值 | ||
1. 'name|1': boolean | ||
> 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2 | ||
2. 'name|min-max': value | ||
> 随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max) | ||
#### 4.属性值是对象 | ||
1. 'name|count': object | ||
> 从属性值 object 中随机选取 count 个属性 | ||
2. 'name|min-max': object | ||
> 从属性值 object 中随机选取 min 到 max 个属性 | ||
#### 5.属性值是数组 | ||
1. 'name|1': array | ||
> 从属性值 array 中随机选取 1 个元素,作为最终值 | ||
2. 'name|+1': array | ||
> 从属性值 array 中顺序选取 1 个元素,作为最终值 | ||
3. 'name|min-max': array | ||
> 通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max | ||
4. 'name|count': array | ||
> 通过重复属性值 array 生成一个新数组,重复次数为 count | ||
#### 6.属性值是函数 | ||
1. 'name': function | ||
> 执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 'name' 所在的对象 | ||
#### 7.属性值是正则表达式 | ||
1. 'name': regexp | ||
> 根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串 | ||
### 数据占位符定义 | ||
1. 用 @ 来标识其后的字符串是 占位符 | ||
2. 占位符 引用的是 Mock.Random 中的方法 | ||
3. 通过 Mock.Random.extend() 来扩展自定义占位符 | ||
4. 占位符 也可以引用 数据模板 中的属性 | ||
5. 占位符 会优先引用 数据模板 中的属性 | ||
6. 占位符 支持 相对路径 和 绝对路径 | ||
---- | ||
## Mock.setup() | ||
> 配置Ajax请求的行为,暂时支持的配置项有timeout | ||
```javascript | ||
Mock.setup({ | ||
timeout: 500 | ||
}) | ||
Mock.setup({ | ||
timeout: '100-600' | ||
}) | ||
``` | ||
---- | ||
## Mock.Random | ||
```javascript | ||
const Random = Mock.Random | ||
Random.email() // => sd.sdf@oksd.com | ||
Mock.mock('@email') // => sd.sdf@oksd.com | ||
Mock.mock({ email: 'sd.sdf@oksd.com' }) // => { email: "sd.sdf@oksd.com" } | ||
``` | ||
### Mock.Random提供的完整方法(占位符): | ||
Type | Method | ||
:------- | :------- | ||
Basic | boolean, natural, integer, float, character, string, range, date, time, datetime, now | ||
Image | image, dataImage | ||
Color | color | ||
Text | paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle | ||
Name | first, last, name, cfirst, clast, cname | ||
Web | url, domain, email, ip, tld | ||
Address | area(region, province, city(bool), county(bool), zip), region | ||
Helper | capitalize(首字母大写), upper(大写), lower(小写), pick(从数组任取一个), shuffle(打乱数组元素顺序) | ||
Miscellaneous | guid, id | ||
#### Basic | ||
1. Random.boolean(min?, max?, current? ) | ||
2. Random.natural(min?, max? ) | ||
3. Random.integer(min?, max? ) | ||
4. Random.float( min?, max?, dmin?, dmax? ) | ||
5. Random.character( pool? ) // pool => lower/upper/number/symbol | ||
6. Random.string( pool?, min?, max? ) // pool => lower/upper/number/symbol | ||
7. Random.range( start?, stop, step? ) | ||
#### Date | ||
1. Random.date( format? ) | ||
Format | Description | Example | ||
:---- | :---- | :---- | ||
yyyy | A full numeric representation of a year, 4 digits | 1999 or 2003 | ||
yy | A two digit representation of a year | 99 or 03 | ||
y | A two digit representation of a year | 99 or 03 | ||
MM | Numeric representation of a month, with leading zeros | 01 to 12 | ||
M | Numeric representation of a month, without leading zeros | 1 to 12 | ||
dd | Day of the month, 2 digits with leading zeros | 01 to 31 | ||
d | Day of the month without leading zeros | 1 to 31 | ||
HH | 24-hour format of an hour with leading zeros | 00 to 23 | ||
H | 24-hour format of an hour without leading zeros | 0 to 23 | ||
hh | 12-hour format of an hour without leading zeros | 01 to 12 | ||
h | 12-hour format of an hour with leading zeros | 1 to 12 | ||
mm | Minutes, with leading zeros | 00 to 59 | ||
m | Minutes, without leading zeros | 0 to 59 | ||
ss | Seconds, with leading zeros | 00 to 59 | ||
s | Seconds, without leading zeros | 0 to 59 | ||
SS | Milliseconds, with leading zeros | 000 to 999 | ||
S | Milliseconds, without leading zeros | 0 to 999 | ||
A | Uppercase Ante meridiem and Post meridiem | AM or PM | ||
a | Lowercase Ante meridiem and Post meridiem | am or pm | ||
T | Milliseconds, since 1970-1-1 00:00:00 UTC | 759883437303 | ||
2. Random.time( format? ) | ||
3. Random.datetime( format? ) | ||
4. Random.now( unit?, format? ) // unit => year、month、week、day、hour、minute、second、week | ||
#### Image | ||
##### Random.image() | ||
1. Random.image() | ||
2. Random.image( size ) | ||
3. Random.image( size, background ) | ||
4. Random.image( size, background, text ) | ||
5. Random.image( size, background, foreground, text ) | ||
6. Random.image( size, background, foreground, format, text ) | ||
##### Random.dataImage() | ||
1. Random.dataImage() | ||
2. Random.dataImage( size ) | ||
3. Random.dataImage( size, text ) | ||
#### Color | ||
1. Random.color() // => #3538B2 | ||
2. Random.hex() // => #3538B2 | ||
3. Random.rgb() // => rgb(242, 198, 121) | ||
4. Random.rgba() // => rgba(242, 198, 121, 0.13) | ||
5. Random.hsl() // => hsl(345, 82, 71) | ||
#### Text | ||
1. Random.paragraph( min?, max? ) | ||
2. Random.cparagraph( min?, max? ) | ||
3. Random.sentence( min?, max? ) | ||
4. Random.csentence( min?, max? ) | ||
5. Random.word( min?, max? ) | ||
6. Random.cword( pool?, min?, max? ) | ||
7. Random.title( min?, max? ) | ||
8. Random.ctitle( min?, max? ) | ||
#### Name | ||
1. Random.first() | ||
2. Random.last() | ||
3. Random.name( middle? ) | ||
4. Random.cfirst() | ||
5. Random.clast() | ||
6. Random.cname() | ||
#### Web | ||
1. Random.url( protocol?, host? ) | ||
2. Random.protocol() | ||
3. Random.domain() // 域名 | ||
4. Random.tld() // 顶级域名 | ||
5. Random.email( domain? ) | ||
6. Random.ip() | ||
#### Address | ||
1. Random.region() | ||
2. Random.province() | ||
3. Random.city( prefix? ) | ||
4. Random.county( prefix? ) | ||
5. Random.zip() | ||
#### Helper | ||
1. Random.capitalize( word ) | ||
2. Random.upper( str ) | ||
3. Random.lower( str ) | ||
4. Random.pick( arr ) | ||
5. Random.shuffle( arr ) | ||
#### Miscellaneous | ||
1. Random.guid() | ||
2. Random.id() | ||
3. Random.increment( step? ) | ||
---- | ||
### 扩展 | ||
```javascript | ||
Random.extend({ | ||
fruit () { | ||
const fruit = ['apple', 'peach', 'lemon'] | ||
return this.pick(fruit) | ||
} | ||
}) | ||
Random.fruit() // => 'peach' | ||
Mock.mock('@fruit') // => 'lemon' | ||
Mock.mock({ | ||
fruit: '@fruit' // => 'peach' | ||
}) | ||
``` | ||
### Mock.valid() | ||
#### Mock.valid( template, data ) | ||
### Mock.toJSONSchema() | ||
#### Mock.toJSONSchema( template ) |
Vue-admin工作整理(十八):Mock的使用方法的更多相关文章
- Vue-admin工作整理(八): BUS | | 组件通信
一.父子组件之间通信 思路:定义一个个人组件,个人组件通常需要在前缀统一命名一下,如:AInput,该组件的作用是将编辑框中的内容获取并通过事件提交出去,然后在目标组件(store)中通过双向交互模式 ...
- (十八)js控制台方法
console.log 以日志的形式打印 console.warn 输出警示信息 console.info 输出提示信息 console.error 输出错误信息 console.debug 输出调试 ...
- C++第四十八篇 -- 字符串分离方法
举例:Test_Bluetooth.exe -param_split Test_Bluetooth.cpp #include "pch.h" #include <iostre ...
- J2EE进阶(十八)基于留言板分析SSH工作流程
J2EE进阶(十八)基于留言板分析SSH工作流程 留言板采用SSH(Struts1.2 + Spring3.0 + Hibernate3.0)架构. 工作流程(以用户登录为例): 首先是用 ...
- vue第十八单元(单向数据流 vuex状态管理)
第十八单元(单向数据流 vuex状态管理) #课程目标 1.理解什么是数据管理模式 2.什么是vuex 3.什么时候使用vuex 4.vuex安装及工作原理 5.vuex语法 #知识点 1.首先来看下 ...
- 第十八篇 admin组件
admin组件 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以 ...
- 最全的MySQL基础【燕十八传世】
1.课前准备! 开启mysql服务:1).配置环境变量;2).net start mysql 将该sql文件导入到你的数据库中,以下所有操作都是基于该数据库表操作的!!! [此笔记是本人看着视频加上自 ...
- NeHe OpenGL教程 第二十八课:贝塞尔曲面
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- Vue-admin工作整理(二):项目结构个人配置
通过上一篇文章(Vue-admin工作整理(一):项目搭建)操作完毕后,基础项目已经搭建,下面就要对项目本身进行一下项目结构调整来符合自己的项目要求 1.首先要对package.json文件进行调整, ...
随机推荐
- 8、jeecg 笔记之 自定义word 模板导出(一)
1.前言 jeecg 中已经自带 word 的导出导出功能,其所使用的也是 easypoi,尽管所导出的 word 能满足大部分需求, 但总是有需要用到自定义 word导出模板,下文所用到的皆是 ea ...
- python之进程,线程,协程简单理解
进程:资源单位,由操作系统控制调度.正在执行的一个程序或者过程,进程之间不共享资源,进程间通讯手段:管道,队列,信号量等.多用于计算密集型场景,如金融计算 线程:是cpu的最小执行单位,由操作系统控制 ...
- 运维自动化之系统部署 cobbler(三)
cobbler 介绍 Cobbler: 快速网络安装linux操作系统的服务,支持众多的Linux发行版:Red Hat.Fedora.CentOS.Debian.Ubuntu和SuSE,也可以支持网 ...
- json文件常用代码
1.json数据内容格式化处理 package com.sklm.lhb.json; public class JsonFormatTool { /** * 单位缩进字符串. */ private s ...
- javaweb 发布目录
一个Java Web项目要运行,它首先要放在tomcat之类的容器中:该JavaWeb项目的构成一定要包含下面几种文件以及文件夹: META-INF : 存放一些meta information相关的 ...
- C++ STL stack 用法
Stack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”. 使用STL的s ...
- eclipse 搭建maven项目
最近重新搭建项目把日常用到的东西都记录一下. 创建maven项目(maven4.4以后都自带maven了) 1,创建一个Maven parent 主要是各个项目之间的依赖 使用eclipse 创 ...
- forms-隐藏处理
获取pin码. 查看网页源码<form action="" method="post"> PIN:<br> <inpu ...
- 《AI算法工程师手册》
本文转载自:http://www.huaxiaozhuan.com/ 这是一份机器学习算法和技能的学习手册,可以作为学习工作的参考,都看一遍应该能收获满满吧. 作者华校专,曾任阿里巴巴资深算法工程师, ...
- 如何在Anoconda Prompt 安装pytorch
一.首先需要安装好Anoconda,具体安装步骤可通过https://www.cnblogs.com/chenfeifen/p/10266012.html查看 由于官方下载更新工具包的速度很慢,因此添 ...