【Vue】Mock.js的使用教程,入门级(附代码和案例)

article/2025/5/3 2:50:20

Mock.js的使用(附代码和案例)


1、什么是mockjs

生成随机数据,拦截Ajax请求

了解一项技术,官网当然要知道 Mock.js 官网

2、程序

  • 前端:访问后端接口,展示数据
  • 后端:后端负责业务逻辑,访问数据,返回前端
  • 数据库:存储数据

3、情况

很多公司,后端还没有做好接口,和接口文档(这时前端就不需要等待后端实现接口再写代码)

前端可以通过mockjs参考接口文档,自己先模拟数据,写业务代码,等待后端准备好,再用后端接口替换自己写模拟数据,实现前后端同时开发

4、安装

npm i  mockjs - D

在这里插入图片描述

5、使用

5.1 使用(小试牛刀)
  • 新建mock.js
import Mock from 'mockjs';//Mock.mock(url,data)
Mock.mock("http://abc.com/v5/list",{name:"zeng101",age:18
})

在这里插入图片描述

  • 在main.js 导入mock
import "@/utils/mock";

在这里插入图片描述

  • 使用
//导入 utils request
import request from "@/utils/request";created() {
// console.log(this.$children);
request.get("http://abc.com/v5/list").then((res) => {
console.log("模拟数据", res.data);}).catch((err) => {
console.log(err);});},

在这里插入图片描述

  • 代码实现

在这里插入图片描述

5.2 post请求案例
//post 请求
Mock.mock(/\/v5\/item/, "post", {code: 0,msg: "成功",data: [1, 2, 3, 4],
});
//post请求
request.post("/v5/item").then((res) => {console.log("post数据", res.data);
});
5.3 正则请求案例
//只要网络地址匹配到这个正则就会拦截
Mock.mock(/\/v5\/list/, {name: "zeng101",age: 18,
});
  //正则形式request.get("/v5/list").then((res) => {console.log("模拟数据", res.data);}).catch((err) => {console.log(err);});
5.4 纸多多数据请求
//纸多多数据
Mock.mock(/\/api\/app\/v3\/category/, {message: "success",code: 200,data: {top: [{ cat_id: 0, cat_name: "\u63a8\u8350\u5206\u7c7b" },{ cat_id: 1, cat_name: "\u6587\u5316\u7eb8" },{ cat_id: 2, cat_name: "\u5305\u88c5\u7eb8" },{ cat_id: 3, cat_name: "\u827a\u672f\u7eb8" },{ cat_id: 4, cat_name: "\u5de5\u4e1a\u7528\u7eb8" },{ cat_id: 7, cat_name: "\u767d\u5361\u7eb8" },{ cat_id: 11, cat_name: "\u590d\u5370\u7eb8" },{ cat_id: 12, cat_name: "\u65b0\u95fb\u7eb8" },{ cat_id: 14, cat_name: "\u9ed1\u5361\u7eb8" },{ cat_id: 15, cat_name: "\u53cc\u80f6\u7eb8" },{ cat_id: 6, cat_name: "\u74e6\u695e\u7eb8" },{ cat_id: 94, cat_name: "\u519c\u526f\u4ea7\u54c1" },{ cat_id: 86, cat_name: "\u65e0\u78b3\u7eb8" },{ cat_id: 89, cat_name: "\u4e0d\u5e72\u80f6" },{ cat_id: 91, cat_name: "\u677f\u7247" },],recommend: {categorys: [{cat_id: 35,cat_name: "\u8f7b\u6d82\u7eb8",logo: "https://cdn.toodudu.com/159514020603cf70ec9a2f3f952f2e18.jpg",},{cat_id: 38,cat_name: "\u65b0\u95fb\u7eb8",logo: "https://cdn.toodudu.com/f45dbe288b1cc478fe507ad054317267.jpg",},{cat_id: 51,cat_name: "\u767d\u5e95\u94dc\u7248\u5361\u7eb8",logo: "https://cdn.toodudu.com/169ef046e96665819ba91d9aee18f701.jpg",},{cat_id: 52,cat_name: "\u7070\u5e95\u94dc\u7248\u5361\u7eb8",logo: "https://cdn.toodudu.com/16178dcc248c8098d7d460654f900ba5.jpg",},{cat_id: 1,cat_name: "\u6587\u5316\u7eb8",logo: "https://cdn.toodudu.com/a5d9f2db2abed10a1306bc7495601801.jpg",},{cat_id: 2,cat_name: "\u5305\u88c5\u7eb8",logo: "https://cdn.toodudu.com/bad951f04bbdd4c9b0f4bffa298b9042.jpg",},{cat_id: 3,cat_name: "\u827a\u672f\u7eb8",logo: "https://cdn.toodudu.com/36e7ec095717b72014cfd53752baa01d.jpg",},{cat_id: 4,cat_name: "\u5de5\u4e1a\u7528\u7eb8",logo: "https://cdn.zdoodoo.com/aab27872e1e188d2fe070d2a40051c9a.alicdn",},{cat_id: 7,cat_name: "\u767d\u5361\u7eb8",logo: "https://cdn.toodudu.com/3c294fc36b3e2e794d765da2ee60f6d1.jpg",},{cat_id: 11,cat_name: "\u590d\u5370\u7eb8",logo: "https://cdn.zdoodoo.com/e3deb62e3f2c77c9e531c435cf075db4.jpg",},{cat_id: 12,cat_name: "\u65b0\u95fb\u7eb8",logo: "https://cdn.zdoodoo.com/40b89317a8230db4e582541649b4c93d.jpg",},{cat_id: 14,cat_name: "\u9ed1\u5361\u7eb8",logo: "https://cdn.toodudu.com/cf609a216df70af19f6247d518d0b5a7.jpg",},{cat_id: 15,cat_name: "\u53cc\u80f6\u7eb8",logo: "https://cdn.toodudu.com/08a4f33d564cb2727a834f3f807a4706.jpg",},{cat_id: 6,cat_name: "\u74e6\u695e\u7eb8",logo: "https://cdn.toodudu.com/5443180758be1cb65077ae9aff595796.jpg",},{cat_id: 69,cat_name: "\u9759\u7535\u590d\u5370\u7eb8",logo: "https://cdn.toodudu.com/26bbb6338c0ed7ab3ed22781707e9827.jpg",},{cat_id: 70,cat_name: "\u7eb8\u7bb1",logo: "https://cdn.zdoodoo.com/64dcc60944cbc3bc6af538aa1eeb2835.alicdn",},{cat_id: 71,cat_name: "\u7070\u5e95\u767d\u677f\u7eb8",logo: "https://cdn.toodudu.com/58f3efbe6b60b7e8cdc67c08503d489a.jpg",},{cat_id: 72,cat_name: "\u7bb1\u677f\u7eb8",logo: "https://cdn.toodudu.com/beeaf57e831a5dde998341e2493cd31a.jpg",},{cat_id: 36,cat_name: "\u94dc\u7248\u7eb8",logo: "https://cdn.toodudu.com/44cf483c3ebb41c8bc859be63f515cb3.jpg",},{cat_id: 42,cat_name: "\u725b\u76ae\u5361\u7eb8",logo: "https://cdn.toodudu.com/b9fb9f5c0697168123e454400419f822.jpg",},{cat_id: 43,cat_name: "\u7bb1\u677f\u7eb8",logo: "https://cdn.toodudu.com/39aec0797e9ff59dbbe024df2133cb04.jpg",},{cat_id: 45,cat_name: "\u74e6\u695e\u7eb8\u677f",logo: "https://cdn.toodudu.com/dae179c37ce76eb89eb4bf913cca3898.jpg",},{cat_id: 66,cat_name: "\u80f6\u7248\u7eb8",logo: "https://cdn.toodudu.com/a5e9549092026564e7958231727e0a74.jpg",},],brands: [{brand_id: 13,brand_name: "\u4f73\u76ca\u7eb8\u4e1a",brand_logo:"https://cdn.toodudu.com/13d295fdff8f0a5078ee97e10b6f702c.jpg",},{brand_id: 2,brand_name: "\u535a\u5927\u7eb8\u4e1a",brand_logo:"https://cdn.toodudu.com/2d4b1900354a879d459cab54cd7ff5cc.jpg",},{brand_id: 7,brand_name: "\u53cb\u987a\u7eb8\u4e1a",brand_logo:"https://cdn.toodudu.com/979753d9e2229c5146ba8c74efc095fc.jpg",},{brand_id: 9,brand_name: "\u6d2a\u56fe",brand_logo:"https://cdn.toodudu.com/45c561db526f3dc8b9aadeb94bf35965.jpg",},{brand_id: 19,brand_name: "\u6c38\u6052\u7eb8\u4e1a",brand_logo: "",},{brand_id: 22,brand_name: "\u6c5f\u95e8\u661f\u8f89\u9020\u7eb8",brand_logo:"https://cdn.toodudu.com/ee42e315348da804381125c5eb5b0cb2.png",},{brand_id: 137,brand_name: "\u6c5f\u82cf\u76db\u5b9d\u4ed1\u7eb8\u4e1a",brand_logo: "",},{brand_id: 138,brand_name: "\u9e3f\u5a1c\u7eb8\u4e1a",brand_logo: "",},],},banner: [{id: 239,cateid: 71,image: "https://cdn.zdoodoo.com/2020/04/24/FwQyo3sKuwEnb2lkJ8s26O5vLRr8bIXHbICtiNtt.jpeg",title: null,url: "",web_url: "",app_path: "",web_path: "",mini_url: "",theme_color: "rgb(118, 198, 241)",},],
 //纸多多数据request.get("/api/app/v3/category").then((res) => {console.log("多多", res.data);}).catch((err) => {console.log(err);});
5.5 带参数请求
//带参数
/* post参数,option前端请求的数据,option.url请求的地址
option.type 请求的方式
option.body请求的字符参数(需要JSON.parse转对象)
*/
Mock.mock(/\/v5\/jok/, "post", function (option) {return {code: 0,msg: "参数成功",data: {title: "信息标题",content: "内容",...JSON.parse(option.body),},};
});
//带参数request.post("/v5/jok", { id: 20, key: "xyz" 			}).then((res) => {console.log("带参数", res.data);});
5.6 随机请求
Mock.mock(/\/v5\/user/, {"id|+1": 1024,name: "@cname",regexp: /[a-z][A-Z][0-9]/,"age|1-100": 1,"price|25-50.2-5": 1,"score|1-5": "※",title: "@ctitle(8,14)",description: "@cparagraph","object|2-4": {110000: "北京市",120000: "天津市",130000: "河北省",140000: "山西省",},"isLog|1": true,"friend|2-10": ["红", "绿", "蓝蓝"],"des|2": { eye: 2, hand: 1, leg: 2, job: "teacher" },tel: /1\d{10}/,email: /[a-z]{2,6}@(126|163|qq)\.(com|cn|net)/,canMerry: function () {if (this.age > 22) {return true;} else {return false;}},day: "@date('yyyy-MM-dd')",time: "@time('HH:mm:ss')",add: "@county(true)",avatar: "@dataImage('200x100', 'Hello Mock.js!')",
});
//请求随机数据request.post("/v5/user").then((res) => {console.log("随机", res.data);});

7、案例

  • 在 mock.js 写以下代码:
Mock.mock(/\/v5\/user/, {code: 0,msg: "成功","data|10": [{"id|+1": 1024,name: "@cname",regexp: /[a-z][A-Z][0-9]/,"age|1-100": 1,"price|25-50.2-5": 1,"score|1-5": "※",title: "@ctitle(8,14)",description: "@cparagraph","object|2-4": {110000: "北京市",120000: "天津市",130000: "河北省",140000: "山西省",},"isLog|1": true,"friend|2-10": ["红", "绿", "蓝蓝"],"des|2": { eye: 2, hand: 1, leg: 2, job: "teacher" },tel: /1\d{10}/,email: /[a-z]{2,6}@(126|163|qq)\.(com|cn|net)/,canMerry: function () {if (this.age > 22) {return true;} else {return false;}},day: "@date('yyyy-MM-dd')",time: "@time('HH:mm:ss')",add: "@county(true)",avatar: "@dataImage('200x100', 'Hello Mock.js!')",},],
});
  • AboutView 写以下代码
<template><div class="about"><div class="mock"><h1>Mock</h1><div v-for="item in list" :key="item.id"><h3>{{ item.name }}</h3><h3>{{ item.age }}</h3><h3>价格:{{ item.price }}</h3><h3>{{ item.score }} | {{ item.tel }}</h3><p>{{ item.title }}</p><p>{{ item.description }}</p><img :src="item.avatar" alt="" /><hr /></div></div></div>
</template><script>
//导入 utils request
import request from "@/utils/request";
export default {data() {return {list: [],};},created() {//请求随机数据request.post("/v5/user").then((res) => {console.log("随机", res.data);this.list = res.data.data;});},
};
</script>
  • 代码运行结果

在这里插入图片描述


这篇分享就到这里了


http://chatgpt.dhexx.cn/article/SgAX9WMH.shtml

相关文章

YDOOK:vue3.0: vue-cli4.5: 引入 Element PLUS 的正确方法 Vue-cli4.5 引入 element+ plus

YDOOK&#xff1a;vue3.0: vue-cli4.5: 引入 Element PLUS 的正确方法 Vue-cli4.5 引入 element plus 1. 官网的指导安装使用方式尚未更新&#xff0c;显示的是&#xff1a; 2. 如果使用的是 npm 安装, 输入的代码为&#xff1a; npm install element-plus --save大陆建议使用…

使用Xposed对软件进行破解

入门 去AS里面新建一个NoActivity项目&#xff0c;最好把minimum版本调小 <!-- 加载Xposed模块--><meta-dataandroid:name"xposedmodule"android:value"true" /> <!-- 模块描述--><meta-dataandroid:name"xpose…

破解root密码精简版

破解root密码精简版&#xff1a; 1、重启虚拟机 2、在linux16末尾加上 rd.break,ctrlx执行 3、mount -o remount,rw /sysroot 把根以读写的方式挂载 挂在系统的根sysroot 4、chroot /sysroot 5、passwd root 6、输入新密码&#xff1a; 7、确认密码 8、touch /.autorelabel 标…

【word论文排版教程4】样式的应用

【word论文排版教程4】样式的应用 在使用样式处选择相应样式&#xff0c;同样可以使用之前设置的快捷键 标题比较长&#xff0c;使用软回车进行换行

【word论文排版教程2】论文章节安排及分节

【word论文排版教程2】论文章节安排及分节 论文章节可分为如下8个章节&#xff1a; 封面 中文摘要 英文摘要 目录 正文 参考文献 附录 致谢 输入封面&#xff0c;添加分解符 添加分解符效果 同样方法为其它章节添加分解符。

【word论文排版教程1】页面设置

【word论文排版教程1】页面设置 页面设置要求如下&#xff1a; 页面格式&#xff1a;纸张A4&#xff0c;上2.6cm&#xff0c;下2.6cm&#xff0c;左2.5cm&#xff0c;右2cm&#xff0c;装订线位置左侧&#xff0c;装订线0cm&#xff0c;无文档网格 页面布局->页面设置

毕业必备!推荐收藏的学位论文排版教程(word完整版)

本文将介绍学位论文的页面布局&#xff0c;标题格式&#xff0c;文档生成列表&#xff0c;插入公式&#xff0c;页眉页脚&#xff0c;生成目录、表格和图片的交叉引用、插入参考文献、英语翻译校对等内容和技巧&#xff0c;学习内容偏多&#xff0c;同学们可以先收藏下来&#…

毕业论文word文档排版教程(动图的方式演示,针对wps)

很久之前写好的文章&#xff0c;不知不觉毕业了那么久了 目录 1 常用快捷键 2 显示全部格式标记 3 因有手动换行符无法实现首行缩进 4 利用表格制作矩阵 5 因有英文(代码)和中文而导致空隙过大 6 设置页码和目录 xx 参考文献自动编号并更新文章中的序号 xxx 页…

Latex基本使用:论文排版

文章目录 前言一、参考文献引用二、插入符号1.插入希腊字母2.插入符号 三、插入公式三、插入图片总结 前言 记录使用Latex排版论文的方法。 一、参考文献引用 引用参考文献使用的是bib文件&#xff0c;首先在tex文件所在目录下新建txt文件&#xff0c;修改后缀为bib。 在谷歌…

texlive2020 + vscode 论文排版教程

这是我准备公开的第二篇技术博客&#xff0c;之前也写过一些简单的&#xff08;拿不出手的&#xff09;博文&#xff0c;但一直没信心公开&#xff0c;不过最后觉得也没啥&#xff0c;大家可以交流嘛&#xff0c;万一你写的有错&#xff0c;有好心人看见了指出的话那也是极好的…

毕业论文排版教程(word)桂林电子科技大学

摘要&#xff1a;满心欢喜地给导数发去初稿&#xff0c;换来了一句“格式乱起八糟”&#xff0c;你是否还在为论文排版而苦不堪言&#xff0c;认真看完这份教程&#xff0c;让你轻松搞定毕业论文排版。 毕业论文排版教程&#xff08;word&#xff09;桂林电子科技大学 样式图片…

【word论文排版教程3】制作样式和列表

【word论文排版教程3】制作样式和列表 一级标题&#xff1a;黑体小二&#xff0c;居中&#xff0c;行距“固定值:20磅”&#xff0c;段前、段后均1行。 二级标题&#xff1a;黑体小三&#xff0c;无缩进&#xff0c;行距“固定值:20磅”&#xff0c;段前、段后均0.5行。 三级及…

Word论文排版教程

设置样式 要求&#xff1a; 以下以修改“大标题”为例&#xff0c;其他以此类推 1、大标题 再点击右下角的“段落” 2、标题4… 我们发现word默认只显示了三级标题的样式&#xff0c;如果我们还要更多的样式&#xff1a; &#xff08;选择“所有样式”即可&#xff09; …

论文排版教程

论文排版教程 Tips 一、 常用键 Delete 向后删除 CtrlEnter插入一个分页符 Alt 插入公式 二、 单位可以直接输入 三、定制功能区提升效率 论文正题 一、信息栏制作方法 二、目录制作方法 三、页眉页脚设置 插入分节符 分节符的作用&#xff1a;使得前后两部分在语义上…

Word排版小技巧 | 快速论文排版

文章目录 1.设置中英文字体不同2.设置文档样式3.设置页边距4.设置页眉/页脚/页码添加页眉和页码页眉下边有横线设置从某一页开始显示页码 5.设置自动保存时间&#xff0c;防止死机丢文件6.批量删除空格、空行7. 竖向删除内容8. 图片批量修改大小9. 图片批量居中10.一键拆分表格…

吐血推荐收藏的学位论文排版教程(完整版)

目录 01.保存的高级选项设置 02.纸张设置为A4纸大小 03.设置页边距和装订线距离 04.度量衡的设置 05.创建“论文正文”样式 06.修改论文正文样式 07.设置并修改标题样式 08.给中英文摘要、附录、等大标题套用样式 09.两个Word文档之间进行并排查看 12.一键生成多级列…

2019年下半年软件工程领域各大会议投稿时间(包含会议信息介绍及CCF推荐会议最新目录)

文章目录 前言1 CCF会议最新排名1.1 基本信息1.2 软件工程领域相关会议A类B类C类 2 下半年软工会议投稿时间&#xff08;A类会议&#xff09;2.1 PLDI2.2 POPL2.3 FSE/ESEC2.4 OOPSLA2.5 ASE2.6 ICSE2.7 ISSTA 3 下半年软工会议投稿时间&#xff08;B类会议&#xff09;3.1 ICS…

CCF推荐会议 | 人机交互:截稿日期纵览 (含CSCW, UbiComp, collaboratecom 等会议微信交流群)

以上为未来三个月已公布截稿日期的CCF推荐,人机交互领域会议,按照时间排序。 个别会议因为没有公布截稿信息而不在所列时间线内。 录取率信息为网络上可获得的最近年份数据,不一定是上一年的,文中尽量选择同时带有投稿量的数据年份供大家参考. Core Ranking会排除Not prima…

CCF 会议检索(近期可投)

网址&#xff1a;The Latest Information Technology Conference and Journal List - Conference Partner&#xff0c;注册再查看 步骤&#xff1a; 1、点击会议 2、再点击CCF 3、此时界面是最近可投的CCF会议目录&#xff0c;包括截稿日期和通知日期。 4、点击某个会议&#…

CCF推荐会议/期刊目录(2019)

国际期刊会议 中文 国际 人工智能 https://www.ccf.org.cn/Academic_Evaluation/AI/ 期刊 会议 中文 https://www.ccf.org.cn/ccftjgjxskwml/