当前位置:网站首页>mockjs生成假数据的基本使用
mockjs生成假数据的基本使用
2022-08-02 02:28:00 【未成年梦想】
mockjs生成假数据的基本使用
1.安装
npm install mockjs --save
- 截止写这篇文章的时候,mockjs安装的版本为
"mockjs": "^1.1.0"
2.建立一个文件夹(mock)和文件(mock.js)
- 注意: mock文件夹和
components
组件或者是store
是同级的(不是说一定,而是一般这样子做~) - 建立的文件如下
3.编辑mock.js文件夹
//引入mockjs库
import mockjs from "mockjs";
//引入数据
// import bannerData from "./bannerData.json";
//这里为了演示,就不单独建立一个bannerData的文件了
const bannerData = [
{
"id|1-3": "001",
"name|1": ["家用电器1", "家用电器2", "家用电器3"],
"keywords": ["节能补贴", "4K电视", "空气净化器", "IH电饭煲", "滚筒洗衣机"],
}
]
// 记录数据模板。当拦截到匹配 url 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。
Mock.mock("/mock/bannerData",{
code:200,
data:bannerData
});
4.在main.js中引入
import Vue from "vue"
import App from "@/App"
import "@/mock/mock";
new Vue({
el:"#app",
render:h=>h(App)
})
5.测试
- 为了测试mock,这里安装了下axios
App.vue测试mock
<template>
<divdiv>
</template>
<script>
import axios from "axios";
export default {
name: "",
data() {
return {
}
},
mounted(){
axios.get("/mock/bannerData").then(res=>{
console.log("假数据结果",res.data);
}).catch(error=>{
console.log(error);
})
}
};
</script>
输出结果
mockjs的数据生成规范
疑问
- 我们刚刚编写了下面这段代码,去生成假数据,那么下面这段代码是什么意思呢?
const bannerData = [
{
"id|1-3": "001",
"name|1": ["家用电器1", "家用电器2", "家用电器3"],
"keywords": ["节能补贴", "4K电视", "空气净化器", "IH电饭煲", "滚筒洗衣机"],
}
]
- 根据规范的说明,大概如下
数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值
// 属性名 name
// 生成规则 rule
// 属性值 value
'name|rule': value
并且根据官方提供的生成规则和示例:
1.属性值是字符串 String
'name|min-max': string
通过重复
string
生成一个字符串,重复次数大于等于min
,小于等于max
。'name|count': string
通过重复
string
生成一个字符串,重复次数等于count
。
2. 属性值是数字 Number
'name|+1': number
属性值自动加 1,初始值为
number
。'name|min-max': number
生成一个大于等于
min
、小于等于max
的整数,属性值number
只是用来确定类型。'name|min-max.dmin-dmax': number
生成一个浮点数,整数部分大于等于
min
、小于等于max
,小数部分保留dmin
到dmax
位。
Mock.mock({
'number1|1-100.1-10': 1,
'number2|123.1-10': 1,
'number3|123.3': 1,
'number4|123.10': 1.123
})
// =>
{
"number1": 12.92,
"number2": 123.51,
"number3": 123.777,
"number4": 123.1231091814
}
3. 属性值是布尔型 Boolean
'name|1': boolean
随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。
'name|min-max': value
随机生成一个布尔值,值为
value
的概率是min / (min + max)
,值为!value
的概率是max / (min + max)
。
4. 属性值是对象 Object
'name|count': object
从属性值
object
中随机选取count
个属性。'name|min-max': object
从属性值
object
中随机选取min
到max
个属性。
5. 属性值是数组 Array
'name|1': array
从属性值
array
中随机选取 1 个元素,作为最终值。'name|+1': array
从属性值
array
中顺序选取 1 个元素,作为最终值。'name|min-max': array
通过重复属性值
array
生成一个新数组,重复次数大于等于min
,小于等于max
。'name|count': array
通过重复属性值
array
生成一个新数组,重复次数为count
。
6. 属性值是函数 Function
'name': function
执行函数
function
,取其返回值作为最终的属性值,函数的上下文为属性'name'
所在的对象。
7. 属性值是正则表达式 RegExp
'name': regexp
根据正则表达式
regexp
反向生成可以匹配它的字符串。用于生成自定义格式的字符串。Mock.mock({ 'regexp1': /[a-z][A-Z][0-9]/, 'regexp2': /\w\W\s\S\d\D/, 'regexp3': /\d{5,10}/ }) // => { "regexp1": "pJ7", "regexp2": "F)\fp1G", "regexp3": "561659409" }
那么我们接着下面这段代码的含义
const bannerData = [
{
//属性名为id,生成规则为1-3 属性值为 字符串'001'
//所以根据规则,是重复字符串'001',重复次数为1-3次
"id|1-3": "001",
//属性名为name,生成规则为1 属性值为 数组
//根据规则,从数组当中随机选取一个并返回
"name|1": ["家用电器1", "家用电器2", "家用电器3"],
//属性名为name,生成规则为空 属性值为 数组
//根据规则,原封不动返回,因为生成规则为空
"keywords": ["节能补贴", "4K电视", "空气净化器", "IH电饭煲", "滚筒洗衣机"],
}
]
边栏推荐
猜你喜欢
【LeetCode每日一题】——654.最大二叉树
AI target segmentation capability for fast video cutout without green screen
Lombok
240...循迹
qt点云配准软件
AWR analysis report questions for help: How can SQL be optimized from what aspects?
【Unity入门计划】2D Game Kit:初步了解2D游戏组成
How to adjust the cross cursor too small, CAD dream drawing calculation skills
机器人领域期刊会议汇总
Oracle19c安装图文教程
随机推荐
NAS和私有云盘的区别?1篇文章说清楚
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域
项目后台技术Express
Install mysql using docker
Unable to log in to the Westward Journey
【CNN记录】tensorflow slice和strided_slice
项目场景 with ERRTYPE = cudaError CUDA failure 999 unknown error
qt点云配准软件
20. 用两个栈实现队列
Redis Persistence - RDB and AOF
[Server data recovery] Data recovery case of server Raid5 array mdisk disk offline
NIO's Sword
bool框架::PosInGrid (const简历:关键点kp, int &posX, int诗句)
一次SQL优化,数据库查询速度提升 60 倍
789. 数的范围
【web】理解 Cookie 和 Session 机制
线程的不同状态
to-be-read list
A good book for newcomers to the workplace
[ORB_SLAM2] SetPose, UpdatePoseMatrices