我想构建一个将在不同设备类别上托管的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注入)?
我几乎没有使用服务器端渲染反应应用程序的经验。也许这已经广泛完成了。我只能找到关于专门渲染客户端或服务器端的信息,而不是关于混合两者的信息。