📜  如何在不刷新网页的情况下实时显示数据库中的值?

📅  最后修改于: 2022-05-13 01:56:13.118000             🧑  作者: Mango

如何在不刷新网页的情况下实时显示数据库中的值?

在本文中,我们将了解如何在不刷新网页的情况下显示数据库中的值。假设在我们的网络应用程序中,单击该按钮后,我们有一个按钮,一个函数被触发并从数据库中获取数据。或者在 React Web 应用程序中,我们可以使用每次打开页面时自动获取数据的钩子,例如我们可以使用 React 中的 Effect 钩子。

创建反应应用程序:

  • 第 1 步:使用以下命令创建一个 React 应用程序:
npx create-react-app app-name 
  • 第 2 步:创建项目文件夹(即 my-app)后,使用以下命令移动到该文件夹:
cd app-name

项目结构:它看起来像这样。

使用 useEffect 挂钩如何在组件挂载时获取数据,如何在状态更改或道具更改时运行代码,如何设置计时器或间隔。 useEffect 在每次渲染后运行(默认情况下),并且可以选择在再次运行之前自行清理。所以使用这个钩子,我们可以实时显示数据库中的值,而无需重新加载网页。

语法:以下是 useEffect 钩子的语法:

useEffect(() => {
    // Your code
}, []) // Dependency-array

通过 API 从数据库中获取数据:假设我们有一个从数据库连接的 API,这里我们使用提供虚拟数据的随机 API。单击 handleFetchData函数后,将获取数据,您可以在控制台中看到它。

const handleFetchData = async (e) => {
  // Put the endpoint of Api
  fetch('API_URL_ENDPOINT')
    .then((resp) => resp.json())
    .then((data) => console.log(data))
    .catch((e) => console.log(e));
};

实现:在相应的文件中写下以下代码。

App.js
import { useEffect, useState } from 'react';
  
function App() {
  const [data, setData] = useState([]);
  
  useEffect(() => {
    // API to fetch some dummy data
    fetch('https://reqres.in/api/users?page=2')
      .then((resp) => resp.json())
      .then((apiData) => {
        setData(apiData.data);
      });
  }, []); // Dependency-array
  
  const style = {
    padding: '5px',
    display: 'block',
    color: 'green',
    border: '1px solid black',
  };
  
  return (
    
      

This is React WebApp

      
Display values from database without reloading...
         {data.map((item) => {         return (                        {item.email}                    );       })}     
  ); }    export default App;


运行应用程序的步骤:运行以下命令启动应用程序:

npm start

输出:

注意: useEffect 挂钩将自动运行代码以获取数据,因此您不必一次又一次地重新加载页面。