# 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的使用方法的更多相关文章

  1. Vue-admin工作整理(八): BUS | | 组件通信

    一.父子组件之间通信 思路:定义一个个人组件,个人组件通常需要在前缀统一命名一下,如:AInput,该组件的作用是将编辑框中的内容获取并通过事件提交出去,然后在目标组件(store)中通过双向交互模式 ...

  2. (十八)js控制台方法

    console.log 以日志的形式打印 console.warn 输出警示信息 console.info 输出提示信息 console.error 输出错误信息 console.debug 输出调试 ...

  3. C++第四十八篇 -- 字符串分离方法

    举例:Test_Bluetooth.exe -param_split Test_Bluetooth.cpp #include "pch.h" #include <iostre ...

  4. J2EE进阶(十八)基于留言板分析SSH工作流程

    J2EE进阶(十八)基于留言板分析SSH工作流程   留言板采用SSH(Struts1.2 + Spring3.0 + Hibernate3.0)架构.   工作流程(以用户登录为例):   首先是用 ...

  5. vue第十八单元(单向数据流 vuex状态管理)

    第十八单元(单向数据流 vuex状态管理) #课程目标 1.理解什么是数据管理模式 2.什么是vuex 3.什么时候使用vuex 4.vuex安装及工作原理 5.vuex语法 #知识点 1.首先来看下 ...

  6. 第十八篇 admin组件

    admin组件 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以 ...

  7. 最全的MySQL基础【燕十八传世】

    1.课前准备! 开启mysql服务:1).配置环境变量;2).net start mysql 将该sql文件导入到你的数据库中,以下所有操作都是基于该数据库表操作的!!! [此笔记是本人看着视频加上自 ...

  8. NeHe OpenGL教程 第二十八课:贝塞尔曲面

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  10. Vue-admin工作整理(二):项目结构个人配置

    通过上一篇文章(Vue-admin工作整理(一):项目搭建)操作完毕后,基础项目已经搭建,下面就要对项目本身进行一下项目结构调整来符合自己的项目要求 1.首先要对package.json文件进行调整, ...

随机推荐

  1. php java aes

    class CryptAES{ protected $cipher = MCRYPT_RIJNDAEL_128; protected $mode = MCRYPT_MODE_ECB; protecte ...

  2. 使用Java代码发送邮件

  3. Response内置对象

    request内置对象:主要用来处理用户的请求 response内置对象:处理对用户的响应(在调用service方法时容器会传递过来) response重要方法: public void addCoo ...

  4. get请求02

    import requests r = requests.get("http://www.baidu.com") print(r.status_code) #状态码 print(r ...

  5. cocos2d JS 源生js实现each方法

    javascript笔记——源生js实现each方法   出处:http://www.lovejavascript.com/#!zone/blog/content.html?id=48 jquery里 ...

  6. ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? Originally defined at:

    问题 ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set r ...

  7. javascript中获取字符串或数组中元素的索引

    有些时候,我们需要知道一个字符串中字符的位置,或者一个数组中元素的位置,这是就需要对该变量进行迭代操作. 对于数组,有两个方法indexOf和findIndex() , 需要注意的是,findInde ...

  8. 006-CSS引入外部字体

    我们制作页面css,设置字体,可能会需要加入一些比较特殊的字体,这时候就需要引入这些字体. 方法如下: @font-face { font-family: KuTang;/*定义字体的名字*/ src ...

  9. flask框架中,利用数据库增删查改

    # 配置数据库app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:mysql@127.0.0.1:3306/booktest" ...

  10. CSS其它特性

    文本内容左右对齐及盒子自身左右对齐 说白了,浮动就是可以让我们的div在一行中显示,方便布局,并且各个div之间没有空隙,如果使用display:inline-block也能在一行显示几个div,但是 ...