当前位置: 首页 > news >正文

react中如何mock数据

1.需求说明

因为前后端分离开发项目,就会存在前端静态页面写好了,后端数据接口还没写好;这时候前端就需要自己定义数据来使用。

定义数据有三种方式:直接写死数据、使用mock软件、json-server工具

这里讲解通过json-server工具来获取数据

2.安装插件

npm i -D json-server

3.新建数据文件

在根目录下新建server文件,该文件夹下新建data.json文件用于存储数据

4.更改项目配置文件

package.json

更改前

"scripts": {"start": "react-scripts start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"},

更改后

"scripts": {"start": "react-scripts start & npm run server","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject","server": "json-server ./server/data.json --port 8888"},

说明:

1.需要同时启动项目和工具,工具启动命令是npm run server,项目启动命令是npm run start

2."server": "json-server ./server/data.json --port 8888"代码意思是,server是启动命令、json-server是工具、./server/data.json是数据源位置、--port 8888是设置端口号

3."start": "react-scripts start & npm run server"的意思是,start是启动命令、react-scripts start不知道是什么、& npm run server是代表同时启动server工具;整行代码就是通过npm run start就同时启动项目和启动server工具

4.启动项目和工具可以分开在两个终端控制台启动,分别在两个终端控制台输入各自的命令就行了;也可以在一个控制终端上通过npm run start,前提是有写"react-scripts start & npm run server"

5.测试

import axios from "axios"
function Home() {async function shower() {// await axios.get('http://localhost:8888/kanno').then(res=>{// console.log('res:', res.data);// }) // 通过axios来请求数据const response = await fetch('http://localhost:8888/kanno'); // 通过fetch来请求数据const data = await response.json();console.log('Data:', data);}return (<div><div>我是home</div><button onClick={shower}>点击请求数据</button></div>)
}export default Home

说明:接口地址来源于使用npm run server启动server工具时

6.最终效果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Dav_笔记10:Using SQL Plan Management之4
  • 实战:Redis实现排行榜、点赞和关注功能的基本操作
  • 谷粒商城实战笔记-59-商品服务-API-品牌管理-使用逆向工程的前后端代码
  • mysql中You can’t specify target table for update in FROM clause错误
  • Android SurfaceFlinger——GraphicBuffer内存申请(三十)
  • 基于Pytorch框架的深度学习densenet121神经网络鸟类行为识别分类系统源码
  • 从json到protobuf,接口效率的提升
  • 领略诗词之妙,发觉生活之美。
  • 机器学习课程学习周报五
  • 初学Mybatis之 Lombok 篇
  • 微信小程序安装vant组件库和使用
  • Python3网络爬虫开发实战(6)异步爬虫
  • 速盾:cdn加速能不能防御攻击?
  • 掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了
  • 02 Redis安装与启动
  • [nginx文档翻译系列] 控制nginx
  • bootstrap创建登录注册页面
  • CSS 三角实现
  • MobX
  • 从0到1:PostCSS 插件开发最佳实践
  • 爬虫模拟登陆 SegmentFault
  • 如何优雅地使用 Sublime Text
  • 删除表内多余的重复数据
  • 首页查询功能的一次实现过程
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 正则表达式
  • 追踪解析 FutureTask 源码
  • postgresql行列转换函数
  • 数据可视化之下发图实践
  • ​​​​​​​​​​​​​​Γ函数
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #android不同版本废弃api,新api。
  • #stm32驱动外设模块总结w5500模块
  • $.ajax()
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (007)XHTML文档之标题——h1~h6
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (C++17) std算法之执行策略 execution
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .cn根服务器被攻击之后
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net访问oracle数据库性能问题
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • ??javascript里的变量问题
  • [2016.7 day.5] T2
  • [20180224]expdp query 写法问题.txt
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [Cloud Networking] Layer Protocol (continue)
  • [C语言]编译和链接
  • [LeetCode]-Spiral Matrix III 螺旋矩阵
  • [luoguP3159] [CQOI2012]交换棋子(最小费用最大流)