# 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服务。

相关推荐
遂心_3 小时前
JavaScript 函数参数传递机制:一道经典面试题解析
前端·javascript
遂心_4 小时前
深入理解 React Hook:useEffect 完全指南
前端·javascript·react.js
前端Hardy4 小时前
HTML&CSS: 谁懂啊!用代码 “擦去”图片雾气
前端·javascript·css
前端Hardy4 小时前
HTML&CSS:好精致的导航栏
前端·javascript·css
一个不爱写代码的瘦子5 小时前
迭代器和生成器
前端·javascript
前端小书生6 小时前
React 组件渲染
前端·react.js
用户7678797737328 小时前
后端转全栈之Next.js SEO优化
react.js·next.js
源猿人8 小时前
企业级文件浏览系统的Vue实现:架构设计与最佳实践
前端·javascript·数据可视化
RoyLin9 小时前
TypeScript设计模式:迭代器模式
javascript·后端·node.js
小桥风满袖10 小时前
极简三分钟ES6 - ES9中for await of
前端·javascript