首页 > 其他分享 >使用mock.js来模拟后台数据的方案

使用mock.js来模拟后台数据的方案

时间:2022-10-05 19:33:12浏览次数:73  
标签:请求 js mock import 后台 mockjs 拦截 Mock

如何在项目中引入mockjs,从而实现脱离后端数据,前端做假数据来独立开发业务逻辑。

一. 安装依赖

npm i mockjs --save-dev

二. 使用mock

  1. 按照业务模块建立一个文件来写模拟数据,比如建一个spaceAppoint.ts文件;其中mockjs的一些创建随机数的规则,可以查看文档
import Mock from 'mockjs'

const Random = Mock.Random
const tagList = Mock.mock({
  'list|10': [
    {
      'tagId|+1': Random.natural(),
      'tagName': '羽毛球',
      'groundingStatus': 0,
      'tagLogo': 'https://cdn.ideamake.cn/thumb/saas/visitors/images/avatar/2022-04-20-2bf1d44d6d9832794b7c1dad55c400fb-b2gZth39Q5.jpg?x-oss-process=image/resize,w_104,h_104,m=fill/interlace,1',
    },
  ],
})

export const getTagList = function () {
  return {
    code: 200,
    data: {
      ...tagList,
      current: 1,
      total: 10,
      pages: 1,
      size: 10,
    },
  }
}

  1. 建立一个index.ts文件,将业务模块的文件都引入,并且编写拦截函数;
import { getTagList } from './spaceAppoint'
// 引入mockjs
import Mock from 'mockjs'

// 获取标签列表
Mock.mock(/\/project-business\/space-reservation-tag\/getTagList/, 'post', getTagList)
拦截异步请求

Mock.mock拦截ajax请求,有三个参数:

  • 第一个参数:要拦截的请求路径
  • 第二个参数:要拦截的请求方式
  • 第三个参数:拦截之后的处理逻辑(它是一个函数)这个函数必须要有一个返回值,这个返回值就是返回给异步请求的结果
  1. 在main.js中引入
import './mock' // 此处引入的是src/mock/index.ts文件
  1. 在业务组件中还是按照正常方法编写代码,mock对业务代码是无侵入式的,当我们打开mock的时候,异步请求回自动拦截并返回数据,在浏览器network中无法看到接口请求,返回的是模拟数据。

  2. 当想关闭mock的时候,将main.js中的引入mock注释掉即可

// import './mock' // 此处引入的是src/mock/index.ts文件

标签:请求,js,mock,import,后台,mockjs,拦截,Mock
From: https://www.cnblogs.com/coderInside/p/16756192.html

相关文章

  • java如何将字符串转换为json格式字符串呢?
    转自:http://www.java265.com/JavaJingYan/202206/16540828373607.htmlJSON简介:   JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基......
  • js数据操作
    1.数据绑定WXML中部分数据来自JS中的data1.1js中设置数据data:{myName:"123",title:"weixin",content:"123000",arr:["str","lwx"],//数组//对象o......
  • JS 宏任务和微任务
    先来看一张图,整的明明白白简单地说:宏任务:针对浏览器/node所发起的任务微任务:JS函数回调(异步函数)执行顺序:微任务>宏任务再看一段代码代码解读:JS代码是单线程,从......
  • Three.js day01
    `<head><metacharset="UTF-8"><title>第一个three.js文件_WebGL三维场景</title><style>body{margin:0;overflow:hidden;/*隐......
  • umi项目集成高德地图的js-sdk ——亲测有效
    1.开发前准备注册账号信息创建新应用   2.集成到项目引入到项目中 相关代码util代码封装//@ts-ignoreconstAMap=window.AMap;/***其......
  • 一文了解JSON
    目录JSON在JavaScript中的使用。json的定义json的访问json的两个常用方法JSON在在java中的使用javaBean和和json的互转List和和json的互转map和和json......
  • flexible分析.js
    (functionflexible(window,document){//获取的html的根元素vardocEl=document.documentElement//dpr物理像素比vardpr=window.devi......
  • flexible.js
    (functionflexible(window,document){vardocEl=document.documentElementvardpr=window.devicePixelRatio||1//adjustbodyfontsizef......
  • CommonJs与ESModule的区别
    两者的模块导入导出语法不同,CommonJs是通过module.exports,exports导出,require导入;ESModule则是export导出,import导入。CommonJs是运行时加载模块,ESModule是在静态编译期......
  • js:防抖动与节流
    针对一些会频繁触发的事件如scroll、resize,如果正常绑定事件处理函数的话,有可能在很短的时间内多次连续触发事件,十分影响性能。因此针对这类事件要进行防抖动或者节流处理防......