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

news2024/9/24 23:33:36

Ⅰ、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.coloradmin.cn/o/713007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python编程入门:了解Python及其由来

在计算机编程的世界中&#xff0c;Python已经成为一门备受欢迎的高级编程语言。它的简洁、易读和功能强大使得它成为众多开发者的首选。但你是否了解Python的由来以及为什么它如此受欢迎呢&#xff1f;在本篇博客中&#xff0c;我们将一起探索Python编程语言的起源和一些相关知…

shell中awk命令常用用法总结

1、获取分隔的内容 以点为分隔符获取IP地址的最后一个字段 echo $ip | awk -F . {print $4}

YOLO系列v1-v8

YOLO是Region-free方法&#xff0c;只需要一次扫描&#xff0c;也被称为单阶段&#xff08;1-stage&#xff09;模型。而Region-based方法方法&#xff0c;如mask-rcnn &#xff0c;被称为两阶段&#xff08;2-stage&#xff09;方法。 YOLOv1-v3是原作者&#xff0c;v4和v7是…

【C语言】指针进阶[下](回调函数(模拟实现qsort-采用冒泡方式))

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 回调函数 1.1 qsort 函数的使用 1.2 qsort 排序结构体类型 1.3 回调函数模拟实现 qsort&#xff08;排序整型&#xff09; 1.4 回调函数模拟实现 qsort&#xff08;排序结构体类型&#xff09; 1. 回调函数 回…

【WebAssembly】编译c++ Demo ->HelloWorld

好的开始等于成功了一半&#xff0c;本篇逐条讲解如何将一个cpp通过WebAssembly编译并运行在网页上。 一、环境准备 前提条件 需要安装CMake&#xff0c;VS&#xff0c;python2.7及以上 拉取emsdk代码 仓库地址&#xff1a;GitHub - emscripten-core/emsdk: Emscripten SD…

04_前端包管理工具模块化

注意事项: ​ 改模块代码不用重启服务器,修改config文件的时候需要重启服务器 ​ nvm的安装路径和node的安装路径不能在同一路径下面 ​ 有乱码问题使用管理员权限进行使用use方法 下载安装node ​ 使用命令进行安装 1.nvm list 查看已下载所有的node版本 2.nvm install…

VR工地安全虚拟现实体验:多种事故模拟,第三人称回看

建筑工地五大伤害是指&#xff1a;高处坠落、坍塌、物体打击、机械伤害、触电。利用VR(虚拟现实)技术体验建筑工地五大伤害&#xff0c;可以为建筑工人提供更真实、更安全的工作环境&#xff0c;同时也可以帮助他们更好地了解和掌握工作技能。 以下是VR工地安全虚拟现实体验软件…

C++ Primer(读书笔记)

C源文件通常以.cc、.cxx、.cpp、.cp、.C作为后缀来命名 C语言未定义输入输出语句&#xff0c;而是提供了一个全面的标准库来提供IO机制&#xff0c;对应 iostream、fstream、sstream std::cout<<"Enter Two Numbers"<<std::endl;&#xff0c;这条语句执…

在四维轻云使用过程中,出现这些问题应该怎么办?

在四维轻云的使用过程中&#xff0c;可能会出现在地图中无法显示加载的点云或倾斜摄影模型数据、无法上传数据等问题。出现以下这些问题时&#xff0c;可采取一定的措施来解决&#xff0c;若无法解决可联系工作人员处理。 1、在地图中无法显示加载的点云或倾斜摄影模型数据&am…

推特色情机器人账号泛滥,马斯克的“治推谋略”何在?

据BleepingComputer消息&#xff0c;推特虚假机器人账户泛滥的问题不仅还未得到解决&#xff0c;其中传播色情信息的机器人账户近期反而严重泛滥。 在安全研究小组MalwareHunterTeam最近的一项调查研究中曝光了多个传播虚假消息的机器人账户&#xff0c;它们为真实用户发出的帖…

为汽车制造商赋能,CarFramework定制AOSP技术,提升汽车信息娱乐系统

车载CarFramework&#xff08;车载框架&#xff09;是Android Automotive操作系统中的一个关键组件&#xff0c;它提供了与车辆系统交互的基础设施和功能。CarFramework旨在为车载应用程序提供统一的开发和执行环境&#xff0c;以便它们可以与车辆的硬件和软件进行交互。CarFra…

华为云专家出品《字节码编程指南》电子书上线

Javaagent非入侵全链路监控设计和实现入门 ASM、Javassist、Byte-Buddy三套字节码框架案例 市面上少有的成体系字节码知识 都在这里&#xff01; 华为云出品《深入理解边缘计算》电子书上线 本书适合超过3年经验的高级开发者&#xff0c;适合对字节码编程有学习需求或想拓展…

赛效:CAD怎么转PDF

1&#xff1a;打开91ai在线工具并登录自己的账号&#xff0c;从“CAD转换”菜单里点击CAD转PDF。 2&#xff1a;点击上传电脑本地的CAD文件。 3&#xff1a;文件上传成功后点击“开始转换”。 4&#xff1a;转换成功后&#xff0c;点击下载按钮将文件保存本地。 如果你想了解更…

【超详细】MySQL环境安装

文章目录 说明1、关闭不需要的环境2、检查并删除系统安装包3、获取 mysql 官方 yum 源4、安装 mysql yum 源&#xff0c;对比前后 yum 源5、看看 yum 源是否安装成功6、安装 mysql 服务7、查看配置文件和数据存储位置8、启动服务9、登录 mysql方法一&#xff1a;方法二&#xf…

jedis使用,操作Redis数据库2

在刚刚ping通的基础上,再来通过jedis连接池连接redis 在resources下创建redis.properties配置文件,在配置文件中写如下内容 # 必配 # Redis服务器地址(域名或IP) redis.host192.168.40.100 # Redis服务器连接端口(Redis默认端口号是6379) redis.port6379 # Redis服务器连接密码…

Redis从入门到精通【进阶篇】之持久化 AOF详解

文章目录 0.前言1.详解1.1 AOF 文件的创建1.2. AOF 文件的写入1.3. AOF 文件的同步1. 3.1 同步磁盘上的所有数据1. 3.2 定期同步磁盘上的数据 1.4. AOF 文件的重写1.5. AOF 文件的恢复1.6. 小结 2. RDB和AOF混合方式3. Redis从入门到精通系列文章 0.前言 Redis 支持多种持久化…

Axure设计之滑动验证组件(动态面板)

一、案例效果 1、默认显示滑块、背景及提示文案&#xff1b; 2、滑块仅允许向右水平拖动&#xff0c;且不能超过背景区域&#xff1b; 3、滑块移动过程中&#xff0c;左侧区域样式跟随变化&#xff0c;右侧区域保持不变&#xff1b; 4、滑块为未拖动到最右侧时释放&#xff…

后书《乡村振兴战略下传统村落文化旅游设计》,交浅而言深者,愚也

后书《乡村振兴战略下传统村落文化旅游设计》&#xff0c;交浅而言深者&#xff0c;愚也

初学Spring boot (六) 自定义starter

学习回顾&#xff1a;初学Spring boot &#xff08;五&#xff09; 自动配置原理 自定义Starter 我们分析完毕了源码以及自动装配的过程&#xff0c;我们可以尝试自定义一个启动器来玩玩&#xff01; 1、说明 启动器模块是一个 空 jar 文件&#xff0c;仅提供辅助性依赖管理&am…

B2a实例学习记录

B2a简介 只是把hit存到了hitcollection&#xff0c;只是统计了各自event结果&#xff0c;将每次event的运行结果存起来了&#xff0c;并没有做总的求和 如何在B2a的基础上&#xff0c;实现对某一个chamber的能量的累加 1 hit和SD&#xff08;sensitive detector) 每一个s…