react使用mockjs模拟数据

废话少说,直接开始:

mockjs简介

生成随机数据,拦截 Ajax 请求
注意:只能使用axios,fetch请求无法拦截

官网:http://mockjs.com/


mockjs语法

先略,有空补齐,可以去看看官网,挺简单的


react mock数据方式

第一种方式:在create-react-app项目中直接mock,无需node
第二种方式:在node中mock,需要会一点node知识,需要解决跨域


第一种方式:在create-react-app项目中mock,无需node

步骤:

  1. 安装mockjs,yarn add mockjs -D 或 npm i mockjs -D
  2. 创建文件夹 src -> mock
  3. 在mock文件夹创建文件 user.js,在 user.js引入mockjs,并写上mock数据
  4. 在app或者入口文件中引入,发起请求会自动拦截对应的请求,如果不用,注释即可

例子:
请求代码:

import React, { useEffect,useState } from 'react'
import axios from 'axios'//引入mock -> user.js,如果不再需要mock,注释即可
import './mock/user.js'
import './App.css';function App() {const [page,setPage] = useState(0)useEffect(() => {//get请求axios.get('/user').then(res => {console.log(res.data)})//post请求,模拟注册或登陆axios.post('/add', {data:{username:'admin',password:123}}).then(res => {console.log(res.data)})}, [])//get请求,模拟分页useEffect(() => {axios.get('/list', {data:{page:page}}).then(res => {console.log(res.data)})}, [page])return (<div className="App">hello react<button onClick={() => setPage(page + 1)}>请求分页</button></div>);
}export default App;

mock -> user.js代码

const Mock = require('mockjs')//get请求
module.exports = Mock.mock('/user', 'get', (options) => {const ret = Mock.mock({'user': {username:'@cname'}})return {status:200,data:ret}
})//get请求:模拟分页数据
module.exports = Mock.mock('/list', 'get', (options) => {//接受参数:是JSON格式,需要转换成对象const page = JSON.parse(options.body).pageconst ret = Mock.mock({'list|20':[{'id|+1':1, name:'@cname'}]})if(page > 3){return {status:200,data:[]}}return {status:200,data:ret}
})//post请求,模拟注册
module.exports = Mock.mock('/add', 'post', (options) => {return {status:200,data: JSON.parse(options.body).data}
})

第二种方式:在node中mock

步骤:

  1. 选择node框架 koa 或 express,安装相关依赖
  2. 安装mockjs,并引入
  3. 配置路由(接口地址),并且编写mock数据
  4. 解决跨域,可在前端解决,也可使用node解决

node-koa 代码:

const Koa = require('koa')
const app = new Koa()
const cors = require('koa-cors')
const Router = require('koa-router')
const router = new Router({prefix:'/user'})
const Mock = require('mockjs')router.get('/', (ctx) => {const ret = Mock.mock({'user': {username: '@cname',sign:'@cword(8, 20)','age|18-100':18,'money|1-10000.2':1,'family|2-4':{father:'@cname',mother:'@cname',brother:'@cname',sister:'@cname'},'friends|1-3':['@last'],avatar: `@image('100×100','#50B347', '#FFF', 'Mock.js')`,isMarry:'@boolean',seniority:'@range(3, 7)',birthday:'@date',Address: `${'@region()'} - ${'@city(true)'}`,'score|1-5':'★'},})ctx.body = {status: 200,data: ret}
})app.use(router.routes()).use(router.allowedMethods())//如果使用后端跨域,开启这里
// app.use(
//     cors({//         origin: (ctx) => {//             const origin = ctx.headers.origin
//             console.log(origin);
//             return origin
//         },
//         allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
//         credentials: true,
//     })
// )app.listen(9092, () => {console.log('app is running on 9092 port')
})

如果不会react解决跨域,点击这里 react解决跨域


完结:暂时写这么多,有空再补全一些mockjs语法,撒花

react使用mockjs模拟数据相关推荐

  1. mock模拟的数据能增删改查吗_如何在Vue中使用Mockjs模拟数据的增删查改

    之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...

  2. 在vue-cli项目下简单使用mockjs模拟数据

    为什么要用mockjs 实际开发中,前后端分离,前端需要后端的接口去完成页面的渲染,但是并不能等到后端成员写完接口再开始进行测试.大部分情况下,前后端需要同时进行开发.因此便需要mockjs制造随机数 ...

  3. 【MockJS】使用MockJS模拟数据 (超级详细)

    [MockJS]使用MockJS模拟数据 (超级详细) 文章目录 [MockJS]使用MockJS模拟数据 (超级详细) 2. MockJS 2.1 准备工作 2.2 语法规范 数据模板定义规范 DT ...

  4. 【Vue】032-尚硅谷-尚品汇-mockjs模拟数据---20230111

    032-尚硅谷-尚品汇-mockjs模拟数据 官网链接 第一步:安装依赖包mockjs 安装mockjs `npm install --save mockjs` 第二步:在src文件夹下创建一个文件夹 ...

  5. vue尚品汇商城项目-day03【vue插件-19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件)】

    文章目录 19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件) 本人其他相关文章链接 19.mockjs模拟数据(开发Home首页当中的ListConta ...

  6. vue实战-mockjs模拟数据

    vue实战-mockjs模拟数据 1.在src目录下创建文件夹mock 2.将模拟的json格式的数据写入到文件夹中 banner.json [{"id": "1&quo ...

  7. 使用mockjs模拟数据

    一.安装 简单粗暴 npm install mockjs 二.引入 CommonJS引入 let Mock = require('mockjs') let userInfo = Mock.mock({ ...

  8. 前端用Mockjs模拟数据

    mockjs可以模拟数据,可以使我们更快的得到较为真实的数据,且可以拦截axios的接口调用,让我们的代码实现了调用接口的逻辑且得到模拟的数据,保存业务完整度. 使用步骤: 1.安装 npm i mo ...

  9. nuxt.js开发环境使用mockjs模拟数据

    安装 mockjs 先安装依赖: yarn add mockjs -D 配置插件 在 plugins/mock.js 建立一个 mock 的插件,我们就在这里模拟数据: const Mock = re ...

最新文章

  1. 1085 Perfect Sequence
  2. Linux 打包及压缩命令使用方法总结
  3. 使用饼图_常见图表规范:直方图、圆环图和饼图
  4. Linux中pthread源码在哪,pthread - 源码下载|系统编程|Linux/Unix编程|源代码 - 源码中国...
  5. python udp编程_Python UDP编程
  6. HDU 4609——3-idiots
  7. 一个cmake的简单例子:来自github
  8. 2022最新Funtool趣工具源码+iApp软件库/工具箱源码
  9. 如何使用 Apache 设置反向代理
  10. 2022最新常用API接口
  11. 使用Frida hook 获取native层代码的返回值
  12. 回归测试(Regression Test)
  13. 中奖人js滚动效果_jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可...
  14. js获取当前日期未来七天的日期
  15. H3C 交换机DRNI特性使用介绍
  16. Linux PCI网卡驱动的详细分析
  17. mysql注入带外通道攻击_MySQL注入攻击与防御
  18. TOJ 4074 Running Laps -- 树状数组
  19. 盘龙里那个鸿蒙,盘龙里那个位面守护者霍丹的家族为什么要杀绝四大...-卓优商学院问答...
  20. 重要 APT攻击事件的特征枚举

热门文章

  1. 男人怎样选择合适的太阳镜(图)
  2. [syc题库]#320、天文数字
  3. 教你一秒钟得出 N个节点的完全二叉树有多少个叶子节点 / 度为1或2的节点个数
  4. Rockchip MPP(Media Process Platform)解码H264
  5. caller和callee两者区别
  6. 安科瑞霍尔传感器在智利的应用
  7. MSBDN(Multi-Scale Boosted Dehazing Network with Dense Feature Fusion)具有密集特征融合的多尺度增强去雾网络阅读分析
  8. Struts2框架详解(四)
  9. Cadence Orcad Capture CIS更换元器件之Link Database 功能介绍图文教程及视频演示
  10. 进程间通讯:Binder:bindService和startService以及onServiceConnected回调流程