在 React 组件中使用 JSON 数据文件,怎么去读取请求数据呢?

1200_670 5.png

要在 React 组件中使用 JSON 数据,有多种方法。

常用的有以下几种方法:

1、直接将 JSON 数据作为一个变量或常量引入组件中。

import jsonData from './data.json';

function MyComponent() {
  return (
    <div>
      <h1>{jsonData.title}</h1>
      <p>{jsonData.content}</p>
    </div>
  );
}

这种方法直接将 JSON 数据作为一个变量或常量引入到 React 组件中,可以直接使用 JSON 数据的属性进行渲染,例如:jsonData.title

2、通过 HTTP 请求从后端获取 JSON 数据。

用 Axios 库来发送 HTTP 请求获取 JSON 数据

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function MyComponent() {
  const [jsonData, setJsonData] = useState({});

  useEffect(() => {
    axios.get('/api/data').then((response) => {
      setJsonData(response.data);
    });
  }, []);

  return (
    <div>
      <h1>{jsonData.title}</h1>
      <p>{jsonData.content}</p>
    </div>
  );
}

用 Fetch 来发送 HTTP 请求获取 JSON 数据

import React, { useState, useEffect } from 'react';

function MyComponent() {
  const [jsonData, setJsonData] = useState({});

  useEffect(() => {
    fetch('./data.json')
      .then(response => response.json())
      .then(data => setJsonData(data));
  }, []);

  return (
    <div>
      <h1>{jsonData.title}</h1>
      <p>{jsonData.content}</p>
    </div>
  );
}

这种方法是通过发送 HTTP 请求获取后端的 JSON 数据,通常使用 Fetch 或 Axios 等库来发送 HTTP 请求。在组件的 state 中保存 JSON 数据,当获取到 JSON 数据时更新 state,然后使用 JSON 数据进行渲染。

3、将 JSON 数据作为 props 从父组件传递给子组件。

/* 父组件 */
function ParentComponent() {
  const jsonData = { title: 'Hello', content: 'World' };
  return <ChildComponent jsonData={jsonData} />;
}

/* 子组件 */
function ChildComponent(props) {
  return (
    <div>
      <h1>{props.jsonData.title}</h1>
      <p>{props.jsonData.content}</p>
    </div>
  );
}

这种方法是将 JSON 数据作为 props 从父组件传递给子组件,在子组件中直接使用 props 中的 JSON 数据进行渲染。

4、通过 import 引入一个包含 JSON 数据的 JS 文件。

React 组件

import jsonData from './data.js';

function MyComponent() {
  return (
    <div>
      <h1>{jsonData.title}</h1>
      <p>{jsonData.content}</p>
    </div>
  );
}

data.js 文件

const jsonData = {
  title: 'Hello',
  content: 'World'
};

export default jsonData;

这种方法是将 JSON 数据保存在一个 JS 文件中,然后通过 import 引入到 React 组件中。在组件中直接使用 import 引入的变量或常量来渲染 JSON 数据。

5、将JSON数据保存在组件的state中,并在组件中进行处理。

import React, { useState } from 'react';

function MyComponent() {
  const [jsonData, setJsonData] = useState({ title: '', content: '' });

  function handleJsonData() {
    // 处理JSON数据
  }

  return (
    <div>
      <h1>{jsonData.title}</h1>
      <p>{jsonData.content}</p>
    </div>
  );
}

这种方法是将 JSON 数据保存在组件的 state 中,然后在组件中进行处理。通过 useState Hook 来创建 state,并使用 setState 函数来更新 state

在组件中处理 JSON 数据,然后使用 JSON 数据进行渲染。


以上这5种方法都可以用来在 React 组件中使用 JSON 数据,不同的方法适用于不同的场景和需求。

在项目中根据实际需求来选择最适合的方法。


[1] 阅读原文

大家好!我是 Just,这里是[ 设计师工作日常 ],求点赞求关注!!!

POI是一个Java库,主要用于处理Microsoft Office文件(如Excel、Word等),而React是一种用于构建用户界面的JavaScript库,它们通常搭配使用是在服务器端处理Excel数据,然后通过API返回给前端React应用展示。 在React,如果要用到POI解析Excel数据,通常的做法如下: 1. **服务器端** (例如Node.js + Express + ExcelJS or Java + Spring Boot + Apache POI): - 使用Java的Apache POI库读取Excel文件,将数据转换成JSON或其他适合序列化的格式。 - 对于Node.js,可以使用`exceljs`库来操作Excel,并将内容转换为JavaScript对象。 2. **数据传输**: - 将解析后的数据作为HTTP响应发送给前端。 3. **前端React接收和显示**: - React组件通过fetch或axios等请求工具从服务器获取数据。 - 接收的数据可以在组件内部处理,例如通过`useEffect` hook监听数据变化并更新UI。 示例代码(简化版): ```java // 服务器端Java InputStream inputStream = new FileInputStream("path_to_excel"); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); List<Row> rows = workbook.getSheetAt(0).getRows(); List<Data> dataList = convertRowsToData(rows); // 自定义转换方法 // 返回给前端 List<Map<String, Object>> jsonData = dataList.stream() .map(row -> row.toMap()) // 转换为Map对象便于序列化 .collect(Collectors.toList()); // 响应数据 respondWithJson(jsonData); // 前端React componentDidMount() { fetch('/api/excel-data') .then(response => response.json()) .then(data => this.setState({ excelData: data })); } render() { return ( <table> {this.state.excelData.map(item => ( <tr key={item.id}> {/* 根据数据结构渲染单元格 */} </tr> ))} </table> ); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

设计师工作日常

请我炫个饼🫓

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值