Vue3:在 VSCode 中如何成功安装 Mockjs 及成功引入 Mock 的详细过程

Ⅰ、Mock 简介:

1、什么是 Mock

其一、Mock 的解释一:

Mock 服务是指在测试过程中对于某些复杂(或者不太好构造)的对象,用一个虚拟的对象替代它;对于前端来说,就是后台数据还没有造出来,前端就可以通过 Mock 的路径或定义等,直接拿到想要的数据格式;

其二、Mock 的解释二:

Mock 测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为;

2、为什么要使用 Mock

其一、我认为 Mock 的作用是:

前端开发往往依赖于后端数据接口,在后端接口就绪能够返回数据之前,前端通常很难开工; Mock 功能常用于解决数据模拟问题,有了 Mock 工具模拟数据后,前后端可以同步进入开发,提升团队研发效率。

Ⅱ、在 Vue3 项目中引入 Mock:

1、安装 Mockvite-plugin-mock(插件)

其一、安装命令为:

npm i mockjs vite-plugin-mock --save-dev

其二、版本为:mockjs: 1.1.0; vite-plugin-mock: 2.9.6;

在这里插入图片描述

2、安装 axios 依赖:

// 一般情况下,mock 是与 axios 配合使用的,因为用 axios 来调用地址;

其一、安装命令为:

npm i axios

其二、版本为:axios: 1.3.2;

在这里插入图片描述

3、在 vite.config.js 文件中配置 vite-plugin-mock 等信息

其一、代码为:


import { viteMockServe } from 'vite-plugin-mock'plugins: [vue(),viteMockServe({supportTs:false,logger: false,mockPath: "./mock/"   // 注意:此时的 mockPath 地址是真正安装的 mock 文件夹的地址;})]

// 在配的 viteMockServe({}) 中属性说明:supportTs?: boolean; --是否读取ts文件模块,设置为true时不能读取js文件
logger?:boolean; --是否在控制台显示请求日志
mockPath?: string; --设置模拟数据的存储文件夹,如果不是index.js需要写明完整路径

其二、vite.config.js 文件中的代码为:

在这里插入图片描述

其三、vite 的配置文档及 mockjs 的官方文档:

A、vite 配置文档地址:

https://vitejs.dev/config/

在这里插入图片描述

B、mockjs 的官方文档:

http://mockjs.com/examples.html

在这里插入图片描述

4、创建 mock 文件夹:

其一、在根目录下创建 mock 文件夹及 index.js 文件:

其二、创建 mock 文件夹后的目录结构:

在这里插入图片描述

Ⅲ、配置 mock 文件下 index.js 信息并生成相关数据:

1、index.js 中的代码为:

// Mock 的语法问题:可参考官方文档;


// 引入: mockjs 模块;
import Mock from 'mockjs'// 内存模拟数据
const arr = []
// 循环 10 次,push 10 个对象;
for(let i =0; i < 10; i++) {arr.push({id: Mock.mock('@guid'),name: Mock.mock('@cname'),place: Mock.mock('@county(true)'),})
}// 下面是导出一个数组;
export default [// 简单模拟一个接口:若是 '/list' 请求,那么就会返回一个 arr;{// 发现不需要什么参数,get 方法,地址是 /list;url:'/list',         // 表示:请求的地址;method: 'get',       // 表示:请求的方式;response: () => {return arr}},{url:'/del',method: 'delete',response: ({query}) => {const index = arr.findIndex((item) => item.id === query.id)arr.splice(index,1)return { sucess: true }}},
]

2、根据 export default 中的 url 地址访问:

// 此时是在访问的地址后面,添加 '/list'url 地址

// 此时也说明成功使用了 Mock ,并生成了想要的数据信息;

在这里插入图片描述

3、页面中调用 Mock 的过程:

其一、代码为:

<script setup>import { ref } from 'vue'import axios from 'axios'const list = ref([])// 发请求肯定要用到 axios, 因此需要引入 axios;const getList = async ()=> {const r = await axios.get('/list')  // 因为在 mock 的 index.js 里面,发现了一个不需要什么参数,get 方法,地址是 /list 的输出;// 因为这个项目是:在服务器的环境下,因此可以不加域名;// 因为是异步的,因此需要用 async 和 await;console.log(r);}// vue3 在组合式 api 的环境下,没有 created() 这个函数,因此可以直接在 setup 里面调用函数;getList()</script>

其二、页面显示结果为:

在这里插入图片描述

Ⅳ、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、有兴趣的话,可以多多关注这个专栏(Vue(Vue2+Vue3)面试必备专栏):https://blog.csdn.net/weixin_43405300/category_11525646.html?spm=1001.2014.3001.5482

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5913.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SVN版本控制软件

1.1 特点 1、支持跨平台操作 2、支持版本回退功能 3、每个版本都有唯一的URL 4、获取代码更新必须连接唯一的版本库 5、提交commit必须有网络连接 URL&#xff1a;从服务器中&#xff0c;右键点击库&#xff0c;复制URL 1.2 获取SVN svn属于C/S结构软件 服务端软件&#xff…

SpringBoot项目整合WebSocket+netty实现前后端双向通信(同时支持前端webSocket和socket协议哦)

目录 前言 技术栈 功能展示 一、springboot项目添加netty依赖 二、netty服务端 三、netty客户端 四、测试 五、代码仓库地址 专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

MyBatis-Plus学习3 Wrapper条件构造器

组装查询Wrapper Testpublic void test01() {// 查询用户名包含a&#xff0c;年龄在20-30之间&#xff0c;邮箱信息不为null的用户信息QueryWrapper<User> queryWrapper new QueryWrapper<>();queryWrapper.like("name", "a").between("…

MySQL实战解析底层---“order by“是怎么工作的

目录 前言 全字段排序 rowid排序 全字段排序 VS rowid排序 前言 在开发应用的时候&#xff0c;一定会经常碰到需要根据指定的字段排序来显示结果的需求以举例市民表为例&#xff0c;假设你要查询城市是“杭州”的所有人名字&#xff0c;并且按照姓名排序返回前1000个人的姓…

使用Strve.js来搭建一款 Markdown 编辑器

今天&#xff0c;我们来使用Strve.js来搭建一款 Markdown 编辑器&#xff0c;没错&#xff01;你没听错。我们需要创建了一个实时 Markdown 编辑器&#xff0c;用户可以在 textarea 中输入 Markdown 文本&#xff0c;然后实时显示转换后的 HTML。你可能会说使用 Strve.js 开发会…

Java——《面试题——maven篇》

全文章节 Java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java——…

活动打卡报名小程序开源版开发

活动打卡报名小程序开源版开发 活动打卡报名小程序开源版的功能可以包括以下几个方面&#xff1a; 活动列表展示&#xff1a;展示所有的活动信息&#xff0c;包括活动名称、时间、地点、报名人数等。活动详情展示&#xff1a;点击活动列表中的某个活动&#xff0c;可以查看该…

jenkins共享库配置及设计

jenkins共享库做模块封装时遇到的问题总结&#xff1a; 背景描述:使用jenkins共享库对SCM subversion操作进行封装时&#xff0c;使用了Checkout插件&#xff0c;生成的检出脚本代码为 checkout([$class: SubversionSCM, additionalCredentials: [], excludedCommitMessages: …

【C#】并行编程实战:实现数据并行(2)

本章继续学习实现数据并行&#xff0c;本文主要介绍任务并行度和自定义分区策略相关内容。 本教程对应学习工程&#xff1a;魔术师Dix / HandsOnParallelProgramming GitCode 2、任务并行度 数据并行设计在系统的多个内核上以并行方式运行循环所带来的的优势&#xff…

mac苹果电脑,怎么批量修改文件名称

mac苹果电脑&#xff0c;如何批量修改文件名称&#xff1f;在苹果电脑上对文件名称进行修改是一件非常简单的操作&#xff0c;相信任何mac电脑用户都知道怎么操作&#xff0c;只需要选中要修改名称的文件&#xff0c;然后点击鼠标右键&#xff0c;然后会弹出一个菜单&#xff0…

基于 FFmpeg 的跨平台视频播放器简明教程(四):像素格式与格式转换

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…

(五)Qt 动态手势识别“左右滑动”以及实现翻页效果

系列文章目录 通过Qt实现手势识别控制软件操作相关系列技术方案 &#xff08;一&#xff09;Qt 将某控件、图案绘制在最前面的方法&#xff0c;通过QGraphicsScene模块实现 &#xff08;二&#xff09;Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方&#xff0c;实现圆…