Reactjs 如何使用React钩子执行服务器端数据获取

Reactjs 如何使用React钩子执行服务器端数据获取,reactjs,server-side-rendering,Reactjs,Server Side Rendering,我们只是从React生命周期开始进入React钩子,我们注意到的一件事是,在将呈现页面发送给用户之前,没有直接的方法来运行类似于ComponentWillMount的东西来加载数据(因为useEffect没有在SSR上运行) React是否支持任何简单的方法来执行此操作?这有点棘手,但有一种方法是直接在组件中执行fetch,如中所示 function LifeCycle(props){ console.log("perform the fetch here as in componentw

我们只是从React生命周期开始进入React钩子,我们注意到的一件事是,在将呈现页面发送给用户之前,没有直接的方法来运行类似于ComponentWillMount的东西来加载数据(因为useEffect没有在SSR上运行)


React是否支持任何简单的方法来执行此操作?

这有点棘手,但有一种方法是直接在组件中执行fetch,如中所示

 function LifeCycle(props){
  console.log("perform the fetch here as in componentwillmount")
  const [number, setNumber] = useState(0)

   useEffect(() => {
    console.log("componentDidMount");
    return () => {
      console.log("componentDidUnmount");
    };
  }, []);

}

我也有同样的问题。我已经通过一个自定义钩子和在服务器端两次呈现应用程序来解决这个问题。整个过程如下所示:

  • 在第一次渲染期间,将所有效果收集到全局上下文中
  • 第一次渲染后,等待所有效果解决
  • 使用所有数据第二次呈现应用程序
我写了一个例子来描述这种方法。 这是上的示例表单文章的直接链接


此外,我还发布了一个NPM包,简化了这个过程。

我不知道这是怎么回事,OP不是说useEffect没有在SSR上运行吗?