我想创建一个服务器端反应应用程序,我有一些疑问:
1)当你使用react-dom / server的renderToString时,你是否还需要使用webpack来构建项目,或者这样做呢?
2)你需要添加
吗? <script src="/bundle.js"></script>
到html?如果是这样,为什么?是不是renderToString已经将此文件作为字符串传递? 感谢
答案 0 :(得分:1)
这两件事是无关的。所有renderToString
所做的就是获取您的React组件呈现的内容,作为HTML字符串(而不是创建对象来表示组件并尝试将它们呈现到DOM中,就像在客户端上一样)。它返回该字符串。 React通常仅用于呈现<body>
内的元素,因此通常您将根据字符串呈现根React组件的内容,然后将该字符串插入包含您的doctype的某种模板{ {1}},<html>
和<head>
元素。然后由您来让您的服务器返回构成HTML文档的这一文本字符串。
使用webpack的需要以及将JS应用程序作为<body>
包含在您发送给客户端的HTML中的需求也是不受欢迎的。通常是的,你需要做两件事。
答案 1 :(得分:1)
添加到@Brendan的答案中(他正确提到了webpack的使用):
如果您只是从SSR开始,本文可能会有所帮助: https://medium.com/@gagan_goku/react-and-server-side-rendering-ssr-444d8c48abfc。 有一个简单的技巧,您可能想尝试使生活更简单。