NextJS + Redux Saga + SSR

时间:2019-03-11 17:30:35

标签: reactjs redux redux-saga next.js

我们有一个带有nextjs,redux saga,打字稿设置的项目。 SSR对我们的Web应用程序非常重要,但是每个页面上都有很多相关的小部件。

这就是为什么我们的页面采用模块化的结构,每个小部件(每页1-2个)加载所需数据的原因。 这些小部件现在因SEO原因而相关。

我的问题是,虽然API请求不是在服务器端发出的。现在,它仅返回服务器上每个小部件的defaultState并将其仅加载到客户端。

我已经搜索并找到了很多有关如何执行此操作的说明,但是它们都依赖于nextjs等待“ getInitialProps”方法直到它从服务器返回结果的事实。 由于该生命周期方法仅在“页面”文件夹中可用,因此不适用于我。

此外,如果我阻止“ getInitialProps”组件,则永远不会真正呈现该组件。

我们的页面结构如下:

- pages/Home
    - <HomeContainer ...> (fetches data for the main page)
        - <HomeComponent >
            - <Widget1Container ...> (fetches data)
            - <Widget2Container ...> (fetches data)

我想要的是服务器端在将页面返回给用户之前等待所有提供的请求。 由于页面上不同窗口小部件的复杂性,因此无法创建“组合”端点,我们无法在该端点中将数据存储在“ pages / Home”文件夹中。

我知道这不是理想的选择,但是如何确保服务器实际上发出所有3个请求(homecontainer,widget1container,widget2container)并在返回之前等待那里的响应? 我想像角度通用一样做到这一点。只需等到没有打开的请求或承诺,然后再渲染即可。 有什么想法吗?

任何帮助或想法都会受到赞赏。

谢谢

0 个答案:

没有答案