ciaoððð
在创建我自己的reactjs中创建自己的投资组合时,打开代码以每次更新任何详细信息或信息的代码是令人头疼的。尽管我有一个constants.js
来管理所有恒定数据,但是我仍然必须打开VS代码,编辑常数。JS,然后一次又一次地重新部署网站。作为软件开发人员,这是我们唯一使用逻辑简化事物的目标。
,但我终于找到了一种绕过编码并重申部署过程的方法。在本文中,我们将讨论如何将 Google表与现有或新的ReactJS项目连接。
步骤1:创建一个Google表文档
首先。您需要一个“ Google”帐户。一旦拥有:
-
如果您尚未登录,请登录到您的Google帐户。
-
创建一个新的Google表文档或使用现有的文档来存储您要在React项目中访问的数据。
-
将数据添加到您的Google表格,确保第一行上的所有条目都是您的标题。
步骤2:以CSV的形式发布您的Google表格文档
- 在您的Google表文档中,导航到
File
>Publish to the web
。
- 从出现的弹出窗口中,选择“整个文档”或您想要的任何特定表格,然后从第二个下拉列表中选择“逗号分隔值(.csv)'
-
单击“
Publish
”按钮,然后出现“确定”浏览器弹出窗口,以使您的CSV文件可以通过公共链接访问。 -
复制生成的链接(例如,
https://docs.google.com/spreadsheets/d/e/<YOUR-DOCUMENT-LINK>/pub?output=csv
)以备将来使用。
现在我们已经完成了设置Google表,让我们回到代码。
步骤3:设置您的React项目
- 如果您还没有使用您的首选方法(例如
create-react-app
),则创建一个新的React项目。
npx create-react-app google-sheets-react
cd google-sheets-react
code .
一旦您进入VS代码的编码目录(感谢code .
命令),请安装HTTP客户端Axios,以向Google Shays API提出请求。
npm install axios
步骤4:从Google表中获取数据
- 导入Axios,React,使用,使用效率和使用者在您的React组件中要获取数据。在这里我正在使用
FetchCSVData.js
import React, { useEffect, useState } from 'react';
import axios from 'axios';
export default function FetchCSVData(props) {
// ...
}
此组件将处理Google表格的CSV数据的获取和解析。
- 使用USESTATE钩子存储获取的CSV数据,以设置组件的状态。
const [csvData, setCsvData] = useState([]);
- 在组件安装时,使用使用效果钩触发CSV数据获取。
useEffect(() => {
fetchCSVData();
}, []);
空依赖性数组可确保此效果仅运行一次,模拟了类组件中componentdidmount的行为。
- 定义FetchCSVData函数,该功能将负责从Google表中获取CSV数据。
const fetchCSVData = () => {
const csvUrl = 'YOUR_GOOGLE_SHEETS_CSV_URL_HERE'; // Replace with your Google Sheets CSV file URL
axios.get(csvUrl)
.then((response) => {
// ...
})
.catch((error) => {
// Handle errors
});
}
记住Google表格给您的链接,我要求您用Google Sheeps CSV文件的实际URL替换“ your_google_sheets_csv_url_here”'your_google_sheets_csv_url_here'。
- 定义parsecsv函数,该函数将将CSV文本解析为对象数组。
function parseCSV(csvText) {
const rows = csvText.split(/\r?\n/); // Split CSV text into rows, handling '\r' characters
const headers = rows[0].split(','); // Extract headers (assumes the first row is the header row)
const data = []; // Initialize an array to store parsed data
for (let i = 1; i < rows.length; i++) {
const rowData = rows[i].split(','); // Split the row, handling '\r' characters
const rowObject = {};
for (let j = 0; j < headers.length; j++) {
rowObject[headers[j]] = rowData[j];
}
data.push(rowObject);
}
return data;
}
- 在fetchcsvdata功能中,使用axios向Google Sheets CSV文件URL提出获取请求。
axios.get(csvUrl)
.then((response) => {
const parsedCsvData = parseCSV(response.data);
setCsvData(parsedCsvData);
console.log(parsedCsvData);
})
.catch((error) => {
console.error('Error fetching CSV data:', error);
});
此代码获取CSV数据,使用PARSECSV函数解析并在组件状态中设置解析的数据。
步骤5:根据需要使用您的数据
现在我们已经完成了所有部分,如果您正确遵循了本文的每个部分,则可以从我们刚刚设置的csvData
状态中查看控制台日志中的数据。 /p>
在这里,它的整个代码以及所有注释
import { useEffect, useState } from 'react'
import axios from 'axios'; // Import Axios
export default function FetchCSVData(props) {
const [csvData, setCsvData] = useState([]);
useEffect(() => {
fetchCSVData(); // Fetch the CSV data when the component mounts
}, []); // The empty array ensures that this effect runs only once, like componentDidMount
const fetchCSVData = () => {
const csvUrl = 'YOUR_GOOGLE_SHEETS_CSV_URL_HERE'; // Replace with your Google Sheets CSV file URL
axios.get(csvUrl) // Use Axios to fetch the CSV data
.then((response) => {
const parsedCsvData = parseCSV(response.data); // Parse the CSV data into an array of objects
setCsvData(parsedCsvData); // Set the fetched data in the component's state
console.log(parsedCsvData); // Now you can work with 'csvData' in your component's state.
})
.catch((error) => {
console.error('Error fetching CSV data:', error);
});
}
function parseCSV(csvText) {
const rows = csvText.split(/\r?\n/); // Use a regular expression to split the CSV text into rows while handling '\r'
const headers = rows[0].split(','); // Extract headers (assumes the first row is the header row)
const data = []; // Initialize an array to store the parsed data
for (let i = 1; i < rows.length; i++) {
const rowData = rows[i].split(','); // Use the regular expression to split the row while handling '\r'
const rowObject = {};
for (let j = 0; j < headers.length; j++) {
rowObject[headers[j]] = rowData[j];
}
data.push(rowObject);
}
return data;
}
return csvData;
}
结论
将Google表格纳入您的ReactJS项目可以改变游戏规则,使您无需进行代码更改和重新部署即可无缝更新内容。通过这种简单而强大的方法,您可以轻松保持网站的数据最新。 Google表会在检测到一些新的更改时自动更新文档,因此,除非需要新的标题,否则每次都需要每次更新代码。
通过遵循本指南中概述的步骤,您已经学习了如何将您的React项目连接到Google表格,动态获取数据并使您的Web开发过程更有效。现在,您配备了一个有价值的工具,可以创建数据驱动,易于维护的反应应用程序。
快乐的编码ð