React Hybrid Rendering

时间:2018-03-10 10:12:24

标签: reactjs

上下文

我想构建一个将在不同设备类别上托管的ReactJS网站。有时,它将托管在服务器上,但有时它将托管在Raspberry Pi(甚至是Zero?)上。

我的想法是什么?

主要思想是尽可能地减轻客户端的负担,但我不希望服务器呈现整个应用程序使用户体验更糟糕。

应用程序的某些部分必须快速响应并快速更改。这些部分(用户大多数时间都在工作的地方)应该是客户端的。

其他部分,例如导航菜单或页面标题几乎不会改变。我想从Raspberry中取消加载并在服务器端渲染这些部分。

问题

也许,我可以在index.html页面中提供页面的静态部分,如下所示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
    <title>React App</title>
  </head>
  <body>
    <noscript>
      You need to enable JavaScript to run this app.
    </noscript>
    <div id="root"></div>
  </body>
</html>

这种方法的问题在于我想使用一个单独的UI库来呈现我的导航和我的内容(例如表格)。在这种情况下,库将是Material-UI。如果我理解正确,它需要ReactJS使用该库,我在index.html中没有ReactJS,但只在根元素内。

问题

是否有可能在服务器上呈现部分React应用程序,让其余的呈现给客户端?是否存在安全风险(例如JS注入)?

声明

我几乎没有使用服务器端渲染反应应用程序的经验。也许这已经广泛完成了。我只能找到关于专门渲染客户端或服务器端的信息,而不是关于混合两者的信息。

0 个答案:

没有答案