UmiJS介绍--mock(四)

2023-11-06

umi 里约定 mock 文件夹下的文件即 mock 文件,文件导出接口定义,支持基于 require 动态分析的实时刷新,支持 ES6 语法,以及友好的出错提示

1. 引入 Mock.js

Mock.js是常用的辅助生成模拟数据的第三方库

import mockjs from 'mockjs';

export default {
  // 使用 mockjs 等三方库
  'GET /api/tags': mockjs.mock({
    'list|100': [{ name: '@city', 'value|1-100': 50, 'type|0-2': 1 }],
  }),
};

2. 添加跨域请求头

设置 response 的请求头即可:

'POST /api/users/create': (req, res) => {
  ...
  res.setHeader('Access-Control-Allow-Origin', '*');
  ...
},

3. 合理的拆分你的 mock 文件

合理的拆分你的 mock 文件
对于整个系统来说,请求接口是复杂并且繁多的,为了处理大量模拟请求的场景,我们通常把每一个数据模型抽象成一个文件,统一放在 mock 的文件夹中,然后他们会自动被引入。
在这里插入图片描述

4. 模拟延迟

4.1 手动添加 setTimeout 模拟延迟
你可以在重写请求的代理方法,在其中添加模拟延迟的处理,如:

'POST /api/forms': (req, res) => {
  setTimeout(() => {
    res.send('Ok');
  }, 1000);
},

4.2 使用插件模拟延迟
如:roadhog-api-doc#delay

import { delay } from 'roadhog-api-doc';

const proxy = {
  'GET /api/project/notice': getNotice,
  'GET /api/activities': getActivities,
  'GET /api/rule': getRule,
  'GET /api/tags': mockjs.mock({
    'list|100': [{ name: '@city', 'value|1-100': 50, 'type|0-2': 1 }]
  }),
  'GET /api/fake_list': getFakeList,
  'GET /api/fake_chart_data': getFakeChartData,
  'GET /api/profile/basic': getProfileBasicData,
  'GET /api/profile/advanced': getProfileAdvancedData,
  'POST /api/register': (req, res) => {
    res.send({ status: 'ok' });
  },
  'GET /api/notices': getNotices,
};

// 调用 delay 函数,统一处理
export default delay(proxy, 1000);

5. 使用 umi 的 mock 功能

 export default {
  // 支持值为 Object 和 Array
  'GET /api/users': { users: [1, 2] },

  // GET POST 可省略
  '/api/users/1': { id: 1 },

  // 支持自定义函数,API 参考 express@4
  'POST /api/users/create': (req, res) => { res.end('OK'); },
};

6. 联调

本地开发完毕之后,如果服务器的接口满足之前的约定,那么你只需要不开本地代理或者重定向代理到目标服务器就可以访问真实的服务端数据,非常方便。config/config.js

proxy: {
    '/api/': {
      target: 'https://preview.pro.ant.design/',
      changeOrigin: true,
    },
  },

来源https://umijs.org/zh/guide/with-dva.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UmiJS介绍--mock(四) 的相关文章

  • 区块链在物联网中的应用态势分析

    摘 要 目的 物联网是物体之间共享资源和交流信息的平台 其上的数据价值不断被挖掘显现 而区块链作为一种新型的数据存储管理模式 在体系去中心化 数据溯源和防篡改等方面拥有良好的效果 近来 不少研究都探索了区块链在物联网中的应用 方法 利用文献

随机推荐

  • PaddleHub人体姿态检测模型pose_resnet50_mpii

    姿态检测还是挺有意思的 在 paddlehub 上有直接可以拿来用的模型 pose resnet50 mpii 随便网上找了张图片试了一下效果还行 代码非常简单 import paddlehub as hub module hub Modu
  • Android逆向之旅---爆破一款资讯类应用「最右」防抓包策略原理分析

    一 逆向分析 首先感谢王同学提供的样本 因为王同学那天找到我咨询我说有一个应用Fiddler抓包失败 其实对于这类问题 我一般都会这么回答 第一你是否安装Fiddler证书了 他说他安装了 第二你是否用了我之前说的那个Xposed框架Jus
  • JAVA list加锁_list类里面的东西加锁 (手动加锁方法)

    package privateclass import java util Collection import java util Iterator import java util List import java util ListIt
  • 【计算机组成原理】——原码,反码,补码,移码怎样计算

    机器数与真值 把符号 数字化 的数称为机器数 而把带 或 的数称为真值 正负号用二进制的0 1表示 0 1 x 001 机器数 第一位表示符号 x 1 x 101 真值 直接用 表示 x 5 原码 反码 补码 移码的计算 正数的原码 反码
  • Pycharm绘图时显示额外的“figure”浮窗

    如图所示 不想图片显示在右边 而是单独的一个窗口 这样可以进行点击交互 1 File gt Settings gt 2 找到Tools gt Python Scientific 找到 Python Scientific 去除右边候选框中的勾
  • SpringCache使用

    SpringCache使用 1 引入依赖 引入springcache依赖
  • three.js坐标轴辅助器AxesHelper

    一 效果图 二 添加坐标轴辅助器 使用three js 通过以下代码可以添加坐标轴辅助器 创建坐标轴辅助器 var axesHelper new THREE AxesHelper 5 添加到场景中 scene add axesHelper
  • 私有云平台管理

    更改主机名 controller hostnamectl set hostname controller compute hostnamectl set hostname compute 更改hosts文件 vi etc hosts 插入以
  • Java NIO通信编程

    NIO即非同步非阻塞式IO 有如下几个特点 1 创建一个线程负责处理IO事件和IO事件的分发 2 事件驱动机制 事件到达之后触发 3 线程之间通过wait notify等方式通信 减少线程间切换 NIO客户端和服务端需都维护一个管理通道的对
  • flutter加载不同分辨率本地图片

    flutter移动开发怎么加载本地图片 首先在该项目根目录也就是和ios android同级创建一个images文件夹用来存放图片资源 然后放入需要加载的图片资源例如ic phone png 然后在项目目录下找到pubspec yaml文件
  • 【定量分析、量化金融与统计学】统计推断基础 番外(1)---T table与Z table的值

    目录 一 前言 二 T table 三 Z table 一 前言 为了方便之后的例题讲解 这里放上T tabel和Z table的值 怎么查表 本篇中会直接讲 所以这里就只看表格就行 本篇为工具篇 二 T table 我们给两个版本 适合用
  • Redis学习笔记:数据结构和命令

    本文是自己的学习笔记 主要参考资料如下 马士兵 4 Redis的五大数据类型 1 1 String 1 1 1 String 类型的命令 1 1 2 存储对象 1 2 List 1 2 1 List基本命令 1 2 2 List高级命令 1
  • linux 提高文件读写速度 mmap,【EA字符串Linux面试题】面试问题:kafka读写… - 看准网...

    传统IO 缓存IO 传统IO也就是缓存IO 数据先从磁盘复制到内核空间缓冲区 然后从内核空间缓冲区复制到应用程序的地址空间 这里的内核缓冲区也就是页缓存 PageCache 是虚拟内存空间 读操作 操作系统检查内核的缓冲区有没有需要的数据
  • QT结构体中定义QString注意点

    当需要进行多进程通讯时 结构体中出现字符串时尽量采用C 标准类型 尽量少用QT特有类型QString字符串 尽量采用char 类型替代 这样在多进程通讯时 可直接通过memcpy直接复制内存的方式 而不用担心内存异常问题 由于QString
  • 动手搭建第一个小程序音视频Demo

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序 但是再好的源码和文档也有学习成本 为了尽快的能调试起来 我们还提供了一个免费的一键部署服务 您
  • 华为OD机试 - 最长连续子序列(Java )

    题目描述 有N个正整数组成的一个序列 给定整数sum 求长度最长的连续子序列 使他们的和等于sum 返回此子序列的长度 如果没有满足要求的序列 返回 1 输入描述 第一行输入是 N个正整数组成的一个序列 第二行输入是 给定整数sum 输出描
  • 02 电阻容模型的创建

    打开状态栏 画电阻 电容的封装 实操要点 1 SCH Library一定要先选中 出现元件库的列表 2 放置完元件可以按ESC取消 3 Ctrl C V可以复制粘贴用 4 多余的线可以使用Delete删除 5 可以按鼠标右键轻微的拖动屏幕
  • ViLT:最简单的多模态Transformer

    原文链接 感谢原作者 ViLT 最简单的多模态Transformer 陀飞轮 复
  • 两台外网计算机远程桌面访问(内网穿透)

    背景 如图所示 项目中需要远程访问项目现场的外网计算机 通过外网计算机再访问到现场内网环境中的另外一台计算机 原计划通过市面上的远程桌面软件 如向日葵 ToDesk AnyDesk等 建立两台外网计算机的远程连接 在使用windows自带的
  • UmiJS介绍--mock(四)

    umi 里约定 mock 文件夹下的文件即 mock 文件 文件导出接口定义 支持基于 require 动态分析的实时刷新 支持 ES6 语法 以及友好的出错提示 1 引入 Mock js Mock js是常用的辅助生成模拟数据的第三方库