# 15 React 使用useEffect获取网络数据

要在React中实现这些功能,你可以按照以下步骤进行操作:

  1. 安装json-server模拟接口服务
bash 复制代码
npm install -g json-server

db.json

json 复制代码
{
  "users": [
    { "id": 1, "name": "John", "age": 30 },
    { "id": 2, "name": "Jane", "age": 25 },
    { "id": 3, "name": "Bob", "age": 35 }
  ]
}

在你的项目目录中创建一个JSON文件,比如db.json,用来模拟你的API数据。然后使用json-server启动服务器:

bash 复制代码
json-server --watch db.json --port 3001

这将在本地3001端口启动一个模拟的API服务,你可以通过 http://localhost:3001 访问你的API数据。

  1. 使用axios进行API请求

安装axios:

bash 复制代码
npm install axios

在React组件中使用axios来进行API请求。例如:

js 复制代码
import React, { useEffect, useState } from 'react';
import axios from 'axios';

const MyComponent = () => {
  const [data, setData] = useState([]);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await axios.get('http://localhost:3001/data');
        setData(response.data);
      } catch (error) {
        console.error('Error fetching data:', error);
      }
    };

    fetchData();
  }, []); // 空数组作为依赖表示只在组件挂载时执行一次

  return (
    <div>
      <h1>Data from API:</h1>
      <ul>
        {data.map(item => (
          <li key={item.id}>{item.name}</li>
        ))}
      </ul>
    </div>
  );
};

export default MyComponent;
  1. 在React中使用它们

在React组件中结合使用json-server和axios,从模拟的API服务获取数据并展示在页面上。在示例中,我们创建了一个React函数组件MyComponent,它使用axios从http://localhost:3001/data获取数据,并将其渲染到页面上。

需要注意的知识点:

  • useEffect钩子 :用于在函数组件中执行副作用操作,比如数据获取。在上面的例子中,我们使用了useEffect来确保数据只在组件挂载时获取一次。

  • useState钩子 :用于在函数组件中使用状态。在上面的例子中,我们使用useState来存储从API获取的数据。

  • axios库:用于发送HTTP请求。在上面的例子中,我们使用axios来从模拟的API服务获取数据。

  • JSON Server:用于在本地创建模拟的RESTful API。我们使用json-server来创建一个本地服务器,以模拟一个真实的后端API服务。

相关推荐
微祎_12 小时前
Flutter for OpenHarmony:构建一个 Flutter 旋转迷宫游戏,深入解析网格建模、路径连通性检测与交互式解谜设计
javascript·flutter·游戏
摘星编程12 小时前
React Native鸿蒙版:Calendar日历组件
react native·react.js·harmonyos
红色的小鳄鱼12 小时前
Vue 教程 自定义指令 + 生命周期全解析
开发语言·前端·javascript·vue.js·前端框架·html
●VON12 小时前
React Native for OpenHarmony:解构 TouchableOpacity 的触摸反馈与事件流控制
javascript·学习·react native·react.js·性能优化·openharmony
有诺千金12 小时前
VUE3入门很简单(5)---组件通信(自定义事件)
javascript·vue.js·ecmascript
2501_9444480014 小时前
Flutter for OpenHarmony衣橱管家App实战:支持我们功能实现
android·javascript·flutter
会跑的葫芦怪20 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
2601_9495936521 小时前
基础入门 React Native 鸿蒙跨平台开发:模拟智能音响
react native·react.js·harmonyos
xiaoqi92221 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233221 天前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos