React + SSR:处理需要首先获取数据的组件的正确方法

第4427章

我目前有一个想与SSR一起使用的React应用。除了一个组件外,所有组件几乎都是静态内容,这使SSR变得非常容易。现在,除了组件之外的所有东西都可以很好地渲染。

我的问题是我该如何渲染需要首先获取数据的组件?因为它是一个复杂的SVG,所以我的思路是一旦有数据输入就对它进行“更新”是一个错误的举动,最好是在没有数据的情况下不存在它(带有错误消息) 。

所以这是我的计划:我可以向组件添加一个prop以从父级传递数据,而不是仅将其保留为内部状态。因此,如果传递了数据,则无需在组件中进行任何提取请求。从那里,我可以做的是获取应用程序的静态捆绑输出,并在请求页面时,服务器将像组件一样请求正确的数据。接收到数据后,服务器可以使用正则表达式从捆绑软件中获取组件,将数据添加为prop,渲染该组件,并将其与其余已渲染的静态内容重新粘贴在一起。

这是正确的方法吗?感觉有点复杂,但这可能只是它的完成方式。我不确定。

catchergeese

您的直觉是正确的。在当前的React(17.0)中,使用内部组件中的数据获取进行SSR非常麻烦。

在概念上需要实现的是,所有数据相关性都需要预先知道,即。在调用ReactDOM的render之前。这样,可以以同步方式访问数据,从而可以在服务器上进行一次渲染。

我不太理解您的想法“将正则表达式从捆绑包中删除”。解决数据依赖问题的一种方法是将数据从根组件(即ReactDOM.renderToString(<App componentStaticData={data} />)注入到React树中,并使依赖数据的组件意识到以下事实:它可以从那里获取数据而不是这样做(异步)呼叫。请务必注意,useEffects不在服务器上执行。

获取所有数据依赖项的另一个想法是进行两次遍历渲染。首先使用它来收集所有使用的资源,然后等待它们完成并将其作为静态数据注入发送过程中。

第三种方法是使用开箱即用提供SSR的React框架之一。您可以查看Next.js或Gatsby(以及其他)。根据您的设置,这可能是实现SSR的最简单或最困难的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取事件处理程序中对React组件的引用

来自分类Dev

正确的React组件命名规范

来自分类Dev

在TypeScript中定义React组件的contextTypes的正确方法是什么?

来自分类Dev

是否有正确的方法将数据从HTML页面传递到React组件?

来自分类Dev

Redux与React-与组件共享商店的正确方法

来自分类Dev

继承React组件的正确方法

来自分类Dev

React组件prop更改时如何获取数据?

来自分类Dev

在React Boilerplate容器中获取初始数据的正确方法

来自分类Dev

React Hooks:在组件内部处理异步setState的正确方法是什么?(uploadProgress axios)

来自分类Dev

在不重新渲染React组件的情况下,获取和设置数据(不是状态/属性)的正确方法是什么?

来自分类Dev

React Redux从后端方法获取数据

来自分类Dev

在React中处理组件加载的最佳方法

来自分类Dev

在React Native组件中处理HTTP响应的正确方法是什么

来自分类Dev

在React的事件处理程序中获取组件的prop

来自分类Dev

在React中管理组件功能的正确方法

来自分类Dev

在React中获取数据

来自分类Dev

如何使用Gatsby或React功能组件处理从数据库异步获取

来自分类Dev

在React中处理onClick组件

来自分类Dev

React组件的数据存储

来自分类Dev

正确的数据获取方式-React

来自分类Dev

Redux装饰器以React组件状态获取数据

来自分类Dev

正确卸载 React 组件

来自分类Dev

处理父组件中仅作用于选定子组件的函数的正确 React 方法?

来自分类Dev

获取 url 到 React 组件

来自分类Dev

从 Rails 获取数据到 React 组件中

来自分类Dev

在 React Native Image 组件中处理个人资料图像的正确方法是什么?

来自分类Dev

如何从 React 组件中的 Express 端点获取数据?

来自分类Dev

React 获取组件的高度

来自分类Dev

当子单击事件命中时,React 从父组件获取数据

Related 相关文章

  1. 1

    获取事件处理程序中对React组件的引用

  2. 2

    正确的React组件命名规范

  3. 3

    在TypeScript中定义React组件的contextTypes的正确方法是什么?

  4. 4

    是否有正确的方法将数据从HTML页面传递到React组件?

  5. 5

    Redux与React-与组件共享商店的正确方法

  6. 6

    继承React组件的正确方法

  7. 7

    React组件prop更改时如何获取数据?

  8. 8

    在React Boilerplate容器中获取初始数据的正确方法

  9. 9

    React Hooks:在组件内部处理异步setState的正确方法是什么?(uploadProgress axios)

  10. 10

    在不重新渲染React组件的情况下,获取和设置数据(不是状态/属性)的正确方法是什么?

  11. 11

    React Redux从后端方法获取数据

  12. 12

    在React中处理组件加载的最佳方法

  13. 13

    在React Native组件中处理HTTP响应的正确方法是什么

  14. 14

    在React的事件处理程序中获取组件的prop

  15. 15

    在React中管理组件功能的正确方法

  16. 16

    在React中获取数据

  17. 17

    如何使用Gatsby或React功能组件处理从数据库异步获取

  18. 18

    在React中处理onClick组件

  19. 19

    React组件的数据存储

  20. 20

    正确的数据获取方式-React

  21. 21

    Redux装饰器以React组件状态获取数据

  22. 22

    正确卸载 React 组件

  23. 23

    处理父组件中仅作用于选定子组件的函数的正确 React 方法?

  24. 24

    获取 url 到 React 组件

  25. 25

    从 Rails 获取数据到 React 组件中

  26. 26

    在 React Native Image 组件中处理个人资料图像的正确方法是什么?

  27. 27

    如何从 React 组件中的 Express 端点获取数据?

  28. 28

    React 获取组件的高度

  29. 29

    当子单击事件命中时,React 从父组件获取数据

热门标签

归档