"rendering" 在服务器端渲染的上下文中意味着什么?

What does "rendering" mean in the context of server side rendering?

我知道渲染就是浏览器使用HTML,CSS,js代码把一些东西显示在屏幕上,用户可见的东西

但是在服务器端呈现上下文中,我觉得这是不同的,据我所知,在 SSR 中,呈现意味着只是创建一个完整的 HTML 文档,该文档使用 js 包发送到客户端浏览器,其中浏览器用于显示用户可见的内容

现在只是在服务器端生成一个HTML文件算不算渲染形式??或者这里有些东西不准确,因为它实际上没有渲染任何东西??

Now is just generating a HTML document in the server is considered a form of rendering?

是的。

即使您只有一个用于替换占位符的文本模板,例如

const response = `<html><title>${title}</title><body>${message}</body></html>`;

可以考虑渲染(因为它将模板变成要传输的最终文档)。

在 React 中,如果您使用 create-react-app 创建您的应用程序,那么在构建项目后,它会附加 index.html 文件和 js。 index.html 是空的,只有 <div id="root"></div> 存在。

当您从服务器提供此构建文件夹时,服务器仅按原样发送 index.html 文件,当附加的 js 在浏览器中加载时,浏览器将附加从 <div id="root"></div> 开始的所有内容.这是客户端渲染。

在 React server-side rendering 的上下文中,您的 index.html 应该在发送到浏览器之前在 index.html 文件中呈现更多内容。通过简单地设置一个节点服务器,您可以执行 ReactDOM.renderToString(App) 将当前页面呈现为字符串并附加到 index.html,如 <div id="root">{ReactDOM.renderToString(App)}</div>。这是服务器端渲染。 当浏览器(客户端)接收到它时,它会附加所有其余部分(事件列表等)。

正确设置后,您的网站是同构的(在客户端或服务器中表现相同)