React中的函数式组件一般在哪里进行网络请求呀?

React中的函数式组件一般在哪里进行网络请求呀?有没有像类组件那样的onMounted()的生命周期钩子函数呀

在React的函数式组件中,有一个useEffect()的钩子函数,即副作用函数,其第一个参数为回调,第二个参数为依赖列表,当依赖列表中的依赖项发生变化时,回调便会发生一次,当依赖为空时,回调只发生一次,可以用来模拟onMounted(),


useEffect(() => {
    // 建议在这里发起网络请求
}, [])
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    在函数式组件中,可以使用React的useEffect钩子函数来模拟类组件的onMounted()生命周期钩子函数。使用useEffect的第二个参数传入一个空数组,可以确保网络请求只会在组件挂载后执行一次。 以下是一个关于在React函数式组件中进行网络请求的代码示例:

    import React, { useState, useEffect } from 'react';
    
    function MyComponent() {
      const [data, setData] = useState(null);
    
      useEffect(() => {
        async function fetchData() {
          const response = await fetch('https://example.com/data');
          const data = await response.json();
          setData(data);
        }
        fetchData();
      }, []) // 空数组表示只在组件挂载后执行一次
    
      if (!data) {
        return <div>Loading...</div>;
      }
    
      return (
        <div>
          <h1>{data.title}</h1>
          <p>{data.description}</p>
        </div>
      );
    }
    

    在上面的代码示例中,我们在useEffect中使用async/await来进行异步的网络请求。当请求完成后,会把数据存储到状态中,渲染到页面上。当组件挂载后,useEffect会立即执行一次,发起网络请求,并把数据存储到状态中。当状态发生变化时,组件会重新渲染,展示最新的数据。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^