Next.js将动态加载的服务器端数据传递给所有组件



(我是Next.js的新手,我接手了一个用它编写的项目,所以如果这是我没有看到的明显问题,请原谅(

我有一些数据,我需要加载服务器端的每个请求。它是用getServerSideProps编写的,在一页内运行良好。然而,现在我需要有许多页面,在组件树中有许多可重用的组件。我需要一种机制来拥有一个全局可用的变量,我可以从每个组件访问该变量,并且该变量需要在服务器端填充。在getServerSideProps中一遍又一遍地重复相同的代码,并通过props向下游传递所有数据,这太麻烦和冗余了,我需要一种集中式/静态/钩子(y(方法。

我在请求时在middleware.js进行API调用,并获取所需的数据。如何向树下的所有组件提供这些数据?如果纯粹是客户端,我会使用Context/store,但我不知道如何将服务器上的数据传递给客户端组件。

我最终使用App.getInitialProps来获取所需的数据,并将其作为道具传递给我的自定义App组件。剩下的在React方面是微不足道的:将应用程序包装在一个上下文提供程序中,该提供程序是我用从应用程序道具中读取的值创建的,并使用我编写的钩子在任何需要的地方访问数据。

最新更新