mock-前端数据模拟

2024-06-21 12:52

本文主要是介绍mock-前端数据模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

数据模拟不是开发流程中的必要一环

Json-server

简介:

json-server 是一个简单的 Node.js 服务端应用程序,这个工具的主要作用是提供一个模拟的后端服务,可以在前端开发过程中独立于后端进行简单工作。

使用:

1、 安装

Npm install -g json-server

2、 创建json文件
在这里插入图片描述

这个json文件在哪创建都可以,我只是为了方便在我的工程创建了,json文件中可以定义多个路径接口。

3、 启动服务

json-server --watch .\json-server-mock\json-server-mock.json --port 3003

在这里插入图片描述
在这里插入图片描述

如果不加 –port 3003 默认端口是3000

命令太长,可以将命令配置到package.json中。

4、 访问json接口

在这里插入图片描述

在这里插入图片描述

5、 更多操作

可以对数据进行简单的增删改查以及其他操作,详情观看学习地址链接。

优缺点:

优点:零编码;完全脱离我们开发的项目;只需要提供一个json文件,支持简单的增删改查。

缺点:需要手动编写模拟数据

学习:

学习视频:【Web开发必备技能】json-server搭建数据mock服务器,实现数据增删改查_哔哩哔哩_bilibili

GITHUB:typicode/json-server:在不到 30 秒的时间内获得一个完整的假 REST API,零编码(认真) (github.com)

Mock.js

简介:

Mock.js 是一个用于生成随机数据的 JavaScript 库,它可以帮助前端开发者在没有后端数据的情况下模拟 API 响应。通过 Mock.js,开发者可以很容易地生成各种类型的数据,如字符串、数字、布尔值、对象、数组、图片等,并且可以自定义数据生成的规则。

mock.js有两个作用:

1、 产生模拟数据:调用mock接口后直接返回模拟数据。

2、 拦截ajax:拦截请求并返回模拟数据。

安装配置:

1、 安装。

npm install mockjs vite-plugin-mock

如果项目使用TypeScript的话,需要在src下创建一个mockjs.d.ts文件,并且写入内容如下:

在这里插入图片描述

然后在tsconfig.json进行配置

在这里插入图片描述

因为mockjs没有*.d.ts文件,我们再项目引用时会报错

2、 使用1-只模拟数据

在src下创建mock文件夹,然后在此文件夹下创建mock文件

在这里插入图片描述

然后在文件中编写模拟代码

import Mock from 'mockjs'
export const data_1  = Mock.mock({'name|1-5': 'abc', //这行代码表示 属性名为:name ,属性值随机1到5个                            ’abc’字符串拼接在一起///更多数据
}

调用

在这里插入图片描述

启动项目查看结果

在这里插入图片描述

更多模拟数据规则写法详见官方文档:Home · nuysoft/Mock Wiki (github.com) | Mock.js (mockjs.com)

3、 使用2-拦截xhr请求返回模拟数据(需要配置以vite为例)

a) 如果我们需要拦截xhr请求的话需要先进行配置

在这里插入图片描述

更多配置如下:

{
mockPath?: string:可选,指定存放 mock 文件的目录路径。默认通常是 'mock',意味着插件会默认在项目根目录下的 mock 目录中查找 mock 文件。
configPath?: string:可选,指定 mock 服务配置文件的路径。如果你需要将 mock 配置与 Vite 主配置分离,可以使用这个参数指定配置文件的位置。
ignore?: RegExp | ((fileName: string) => boolean):可选,用于指定哪些文件应该被 mock 服务忽略。可以是一个正则表达式,也可以是一个函数,函数接受文件名作为参数,返回 true 表示忽略该文件。
watchFiles?: boolean:可选,指示 mock 服务是否应该监听 mock 文件的变动。如果设置为 true,则在文件变化时,mock 服务会自动更新。这在开发过程中非常有用,默认值通常是 true。
enable?: boolean:可选,指示是否启用 mock 服务。如果设置为 false,则 mock 服务将不会启动。这可以用来在特定环境下控制是否使用 mock 服务,例如只在开发模式下启用。
logger?: boolean:可选,指示是否启用请求和响应的日志记录。如果设置为 true,则 mock 服务会在控制台输出请求和响应的详细信息,便于调试。
cors?: boolean:可选,指示是否启用 CORS(跨源资源共享)。如果设置为 true,则 mock 服务会对请求响应添加 CORS 相关的 HTTP 头,允许跨源请求。
}

b) 正常编写axios的访问api接口代码

在这里插入图片描述

c) 我们在之前的mock/index.ts中开始编写mock

在这里插入图片描述

d) 正常调用接口

在这里插入图片描述

在这里插入图片描述

注意:

1、MOCK.JS仅能拦截XHR的数据请求(或者基于XHR的第三方库,比如axios),无法拦截使用fetch发出的请求(不直接支持fetch)。

2、使用Mock.js导致文件的下载功能异常。问题是由于 mock.js 在拦截请求时覆盖了 responseType 的值,导致预期应该是 blob 类型的响应数据被错误地处理成了 string 类型。这通常发生在 mock.js 拦截了 AJAX 请求并返回模拟数据时。

在开发环境中测试使用下载功能时禁用mock.js

优缺点

优点:支持生成各种类型的数据,并且可以通过拦截 Ajax 请求模拟后端接口返回数据。

缺点:需要学习 Mock.js 的语法规则。

axios-mock-adapter

针对axios-mock-adapter 是一个专门为 axios HTTP 客户端设计的模拟适配器,用于在测试环境中模拟 HTTP 请求和响应,不能模拟数据。

官网:axios-mock-adapter:Axios adapter that allows to easily mock requests - GitCode

在线平台-APIFOX

在这里插入图片描述

B站官方账号学习:apifox-哔哩哔哩_bilibili

APIFOX教程视频-视频长度22分钟:22分钟学会Apifox!2024年的Apifox有什么全新功能?_哔哩哔哩_bilibili

APIFOX-MOCK-视频长度20分钟: Apifox Mock功能全解析!高级 Mock 自定义脚本功能尝鲜!_哔哩哔哩_bilibili

这篇关于mock-前端数据模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081278

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06