react中如何mock数据

1.需求说明

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

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

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

2.安装插件

javascript 复制代码
npm i -D json-server

3.新建数据文件

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

4.更改项目配置文件

package.json

更改前

javascript 复制代码
"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

更改后

javascript 复制代码
"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.测试

javascript 复制代码
import axios from "axios"
function Home() {
    async function shower() {
        //    const data =  await axios.get('http://localhost:8888/kanno') // 通过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.最终效果

相关推荐
jktantan2 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
前端·javascript·vue.js
2601_962885723 小时前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
excel3 小时前
encodeURI 和 encodeURIComponent 有什么区别?
前端
前端精髓3 小时前
调用openrouter的免费API模型
java·前端·javascript
赛博守夜人4 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
开开心心_Every4 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
networknomad4 小时前
OpenReplay:自己搭的会话回放工具,给前端排错用的
前端·其他
缓慢更新5 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
陈随易5 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
风骏时光牛马6 小时前
AI稳定性治理体系构建与疑难问题深度分析
前端