Mockjs——fetch请求如何使用mockjs来模拟数据

简介: Mockjs——fetch请求如何使用mockjs来模拟数据

前言

借助于mockjsfetch-mock来实现对fetch的mock,使用fetch-mock来拦截fetch请求,使用mockjs来模拟数据。

内容

从安装mockfetch-mock到封装,一条龙服务,让你不再迷茫;

安装依赖

$ pnpm i -D mockjs
$ pnpm i -D fetch-mock

封装mock

src目录下创建mock目录,结构如下:

src/mock
└── index.js

封装内容如下:

import Mock from 'mockjs';
import fetchMock from 'fetch-mock';
const Random = Mock.Random;
// 设备总览
function getAudienceData() {
    const data = Mock.mock({
        msg: '操作成功',
        code: 200,
        data: {
            daykwhChart: {
                datykwh_ylist: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24],
                'datykwh_xlist|13': [/\d{1,2}/],
            },
            airQuality: {
                hu_indoor_unit: '@integer(60, 100)',
                co2_indoor_unit: '@integer(60, 100)',
                pm2_5_indoor_unit: '@integer(60, 100)',
                indoor_air_quality: '@integer(60, 100)',
            },
            kwhMap: {
                month_kwh: '@integer(60, 100)',
                year_kwh: '@integer(60, 100)',
                yesterday_kwh: '@integer(60, 100)',
                total_kwh: '@integer(60, 100)',
            },
            carbonEemission: {
                yearEmiU: 'KgC02',
                todayEmiU: 'KgC02',
                yearEmi: '@integer(600, 2000)',
                totalEmiU: 'KgC02',
                monthEmi: '@integer(600, 2000)',
                totalEmi: '@integer(600, 2000)',
                yesterdayEmiU: 'KgC02',
                monthEmiU: 'KgC02',
                yesterdayEmi: '@integer(600, 2000)',
                todayEmi: '0.00',
            },
            monthkwhChart: {
                monthkwh_xlist: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                'monthkwh_ylist|12': [/\d{1,2}/],
            },
            'banner_url_list|5': [
                {
                    img_url: Random.image('800x500', '#50B347', '#FFF', 'png', '@time'),
                },
            ],
            banner_url: 'https://fudan.minhandtech.com/f/20221028/4e4a75a7-6938-47ee-8bdc-99a3300517b9.jpg',
            todayCeChart: {
                todayCe_xlist: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24],
                'todayCe_ylist|13': [/\d{1,2}/],
            },
            weatherMap: {
                tianqi_desc: '优良',
                tianqi_code: '4',
                temperature: '20',
            },
            lightingDevice: {
                total_lighting: 25,
                'offline_lighting|0-25': 0,
                'online_lighting|0-25': 25,
            },
            'informationList|10': [
                {
                    i_id: Random.increment(),
                    publish_time: Random.date(),
                    i_title: Random.cparagraph(1, 2),
                },
            ],
            monitorDevice: {
                total_monitor: 4,
                'online_monitor|0-4': 4,
                'offline_monitor|0-4': 0,
            },
            monthCeChart: {
                monthCe_xlist: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                'monthCe_ylist|12': [/\d{1,2}/],
            },
        },
    });
    return data;
}
fetchMock.get('/audience/data', getAudienceData);

结果

学无止境,谦卑而行.

目录
相关文章
|
6月前
|
缓存 前端开发 JavaScript
Nginx缓存头信息设置(手把手教你优化网站加载速度)
本文介绍如何通过配置Nginx的HTTP缓存头(如Cache-Control、Expires、ETag)来优化静态资源缓存,提升网站性能。涵盖基础设置、可变与不可变资源区分、验证方法及实用配置示例,帮助开发者实现高效浏览器缓存,加快页面加载,减轻服务器负担。
|
9月前
|
机器学习/深度学习 人工智能 PyTorch
三周内转型AI工程师学习计划
3周AI转型计划:掌握数学、机器学习与深度学习基础,熟练使用Python、PyTorch/TensorFlow。完成2-3个CV/NLP项目,构建GitHub博客,强化LeetCode刷题与模拟面试。每日高效学习9小时,聚焦实战与面试准备,助力快速入行AI。
728 0
|
Shell 网络安全 虚拟化
XPipe:一款新型开源终端管理神器
XPipe 是一款创新的 Shell 连接中心和远程文件管理器,它能够让你从本地机器轻松访问整个服务器基础设施。这款工具运行在你已安装的命令行程序之上,无需在远程系统上进行任何额外配置。因此,如果你通常使用 CLI 工具(如 ssh、docker、kubectl 等)来连接服务器,你可以直接在 XPipe 上使用这些工具,极大地简化了操作流程。
750 15
XPipe:一款新型开源终端管理神器
|
JavaScript 前端开发 API
如何在React.js中使用Shadcn/UI
学习如何在React.js中使用Shadcn/UI构建轻量且可定制的现代化界面。Shadcn/UI为React.js打造,提供核心组件和Tailwind CSS支持,帮助你创建独特的UI,避免大型框架的臃肿。本文介绍安装、配置及与Apipost集成的方法,适合希望提升React.js项目的开发者。通过定制主题和优化性能,你可以高效地开发出功能强大的应用。
1243 59
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
缓存 JSON 安全
Http自定义Header导致的跨域问题
在Web开发中,正确处理跨域问题是确保应用安全和性能的重要环节。通过在服务器端设置适当的CORS头信息,处理预检请求,并遵循最佳实践,可以有效解决自定义Header导致的跨域问题,提高应用的安全性和用户体验。理解并掌握这些技巧,对于构建高效、可靠的Web应用至关重要。
1126 11
|
数据采集 JavaScript 前端开发
一站搞定原型链:深入理解JavaScript的继承机制
综上所述,可以得出: 1. 原型链是对象通过原型实现属性和方法继承的一种机制。 2. 每个对象都有一个 __proto__ 属性,指向它的原型对象。 3. 每个函数(包括构造函数)都有一个 prototype 属性,指向一个对象,这个对象的属性和方法可以被实例共享。 4. 构造函数创建对象时,新对象的 __proto__ 属性指向构造函数的 prototype 对象。 5. 继承可以通过设置原型对象实现,也可以使用 ES6 的 class 语法糖。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
JavaScript
【VUE异常】el-popconfirm失效,@confirm事件不生效,点击没有任何反应,刷新页面才能点击
【VUE异常】el-popconfirm失效,@confirm事件不生效,点击没有任何反应,刷新页面才能点击
848 0
|
开发工具 git
git分支管理master/hotfix/develop/feature/release
采用合理的Git分支管理模型可以显著提升团队协作效率和代码管理的质量。本文介绍的 `master`、`develop`、`feature`、`release`和 `hotfix`分支模型是一个行之有效的方法,适用于大多数软件开发项目。通过清晰地划分各个分支的职责,团队成员可以更专注于各自的开发任务,同时确保代码库的稳定性和可维护性。
2290 2

热门文章

最新文章