"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>
。这是服务器端渲染。
当浏览器(客户端)接收到它时,它会附加所有其余部分(事件列表等)。
正确设置后,您的网站是同构的(在客户端或服务器中表现相同)
我知道渲染就是浏览器使用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>
。这是服务器端渲染。
当浏览器(客户端)接收到它时,它会附加所有其余部分(事件列表等)。
正确设置后,您的网站是同构的(在客户端或服务器中表现相同)