前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mockjs——fetch请求如何使用mockjs来模拟数据

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

原创
作者头像
思索
发布2024-06-26 12:40:28
950
发布2024-06-26 12:40:28

前言

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

内容

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

安装依赖

代码语言:shell
复制
$ pnpm i -D mockjs
$ pnpm i -D fetch-mock

封装mock

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

代码语言:shell
复制
src/mock
└── index.js

封装内容如下:

代码语言:javascript
复制
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);

结果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 内容
    • 安装依赖
      • 封装mock
        • 结果
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档