当前位置:网站首页>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电饭煲", "滚筒洗衣机"],
}
]
边栏推荐
- 项目后台技术Express
- ros多客户端请求服务
- AI目标分割能力,无需绿幕即可实现快速视频抠图
- Nanoprobes丨1-巯基-(三甘醇)甲醚功能化金纳米颗粒
- Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
- C language inserted into the characters of simple exercises
- leetcode / anagram in string - some permutation of s1 string is a substring of s2
- 2022-08-01 mysql/stoonedb慢SQL-Q18分析
- OC和Swift语言的区别
- 2022-08-01 mysql/stoonedb slow SQL-Q18 analysis
猜你喜欢
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
项目场景 with ERRTYPE = cudaError CUDA failure 999 unknown error
Handwriting a blogging platform ~ Day 3
GTK RGB图像绘制
Oracle19c安装图文教程
Good News | AR opens a new model for the textile industry, and ALVA Systems wins another award!
AWR analysis report questions for help: How can SQL be optimized from what aspects?
Reflex WMS Intermediate Series 7: What should I do if I want to cancel the picking of an HD that has finished picking but has not yet been loaded?
【LeetCode每日一题】——654.最大二叉树
yaml
随机推荐
cocos中使用async await异步加载资源
Nanoprobes丨1-mercapto-(triethylene glycol) methyl ether functionalized gold nanoparticles
菜刀webshell特征分析
罗德里格斯公式(Rodrigues‘ Rotation Formula)推导
to-be-read list
swift project, sqlcipher3 -> 4, cannot open legacy database is there a way to fix it
Centos7 install postgresql and enable remote access
列表常用方法
The underlying data structure of Redis
Remember a pit for gorm initialization
mysql 查看死锁
使用self和_(下划线)的区别
2022年NPDP考完多久出成绩?怎么查询?
Ringtone 1161. Maximum In-Layer Elements and
拼多多借力消博会推动国内农产品品牌升级 看齐国际精品农货
FOFAHUB usage test
¶ Backtop back to the top is not effective
欧拉公式的证明
2022-07-30 mysql8执行慢SQL-Q17分析
周鸿祎称微软抄袭,窃取360安全模式