MockJs

MockJS

为什么使用它:

1.[前后端分离],有时候后端开发比前端慢我们开发完成后端接口还没写好,这个时候前端就可以自己模拟数据测试
2.可生成你需要的随机数据
3.用法简单
4.在后端接口完成之后,只需要改变url请求地址即可。

整体的使用规则

官方文档 http://mockjs.com/

@/Mock/index.js文件

函数一:Mock.mock(参数一:拦截的请求地址, 参数二:需要拦截的请求类型,参数三:生成的响应数据的函数)

import Mock from "mockjs"

// 方法一:指定请求方式
// 为什么使用双层的Mock?
// 因为外层的Mock是拦截ajax请求的,里面的Mock是模拟假数据的

Mock.mock('/api/login','get',function(option){
    //option是相关的请求参数,一般我们post传参的时候可以打印一下看一下是不是传的正确
    console.log(option);
    return Mock.mock({
        "data|10":[{
            // 自定义的数据
            name:"@cname",//随机的中文名

        }
        ]
    })
})
// 方法二 不规定请求方式,post或get均可使用,推荐这种方式
Mock.mock( '/api/login', 
     Mock.mock({
        "data|10":[{
            // 自定义的数据
            name:"@cname",//随机的中文名

        }
        ]
    })
)

写好这个文件,但是我们要将这个文件运行起来,这样就是在main.js中引入这个文件

import ./Mock/index.js

此外使用mockjs前还要将axios挂载到Vue原型上(post与get都要进行)

import axios from 'axios';
Vue.prototype.$axios = axios;

然后我们在拦截的地址页面上编写 请求对应的url即可,请求的方式也要对应起来

<template>
    <div>
        <button @click="login">登录</button>
    </div>
</template>

<script setup>
const login = async()=>{
    const {data} = await this.$axios.get('/api/login')
    console.log(data)
    }
</script>

<style lang="scss" scoped>

</style>
对于地址是动态变化的地址,我们可以使用正则地址来模拟
// url为:/api/get/list?pageindex=1&pagesie=10
// 无法与/api/get/list匹配,因此要用到正则,这个的意思就是包含/api/get/list的地址即可,\为转移字符
Mock.mock(/\/api\/get\/list/,'get',(options)=>{
    console.log(options)   //业务代码省略
})

数据模板的定义

  1. 数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:。写法如下:

‘name|rule’: value // ‘属性名|生成规则’:属性值

2.数据占位符的定义规范,占位符只在属性值字符串中占个位置,并不出现最终的属性值中,格式为

@占位符
@占位符(参数 [, 参数])

Mock.Random随机生成函数

这些函数在使用的时候,前面加上@

id:"@increase(1)"  //生成一个全局的自增整数。
name:"@cword(2,6)" //随机生成一个2~8个字的中文文本

相关的函数可以去官网上去看

在这里插入图片描述

常用的一些语法

  // 自动生成20条数据
  "data|20": [{
    // 从ID为1开始,每条数据ID自动加1
    "ID|+1": 1,
    // 随机生成一个中文名-->俊怡
    'name': "@cname",
    // 随机生成数组中的1项-->房产消费
    'type|1': ["汽车消费","房产消费","抵押贷款"],
    // 随机生成5-20个中文-->次几委数没百电报个者料完改从
    'text|5-20': '@cword',
    // 随机生成一个范围0-10的数字-->6
    'account|0-10': 1,
    // 随机生成一个日期时间-->"1975-10-27 00:44:40"
    "date":"@date('yyyy-MM-dd HH:mm:ss')"
    // 随机生成一个日期-->"1975-10-27"
    "date":"@date"
    // 随机生成一个大小100×100,颜色随机,格式为png的图片地址
    "imgUrl": "@Image('100x100','@color','png')",
    // 随机生成一个邮箱:
    "email": "@email",
    // 随机生成一个颜色-->#79f2e3
    "color": "@color",
    // 随机生成一个布尔值-->true
    "is": "@boolean",
    // 随机生成一个英文名-->Helen Brown
    "name": "@name",
    // 随机生成十个中文组成的标题
    "title": "@ctitle(10)",
    // 随机生成一个中国大区
    "cregion":"@region",
    // 随机生成一个省
    "cprovince":"@province",
    // 随机生成一个市
    "ccity":"@city",
    // 随机生成一个县
    "country":"@county",
    // 随机生成一个省 + 市
    "ss":"@city(true)",
    // 随机生成一个省市县-->"陕西省 商洛市 山阳县"
    "countrysx":"@county(true)",
  	//随机生成邮政编码
    "code":"@zip"
  }]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值