React使用服务器端渲染还是客户端渲染?

5
在我读到的一篇文章中,提到:
React 使用服务器端渲染。
但在另一篇文章中,我发现以下内容:
客户端渲染是一种相对较新的网站渲染方法,直到 JavaScript 库将其纳入开发风格之后才真正流行起来。一些著名的例子是 Vue.js 和 React.js。
那么哪种说法是正确的呢?
当我使用 create-react-app 并运行 npm start 时,我觉得 React 使用的是客户端渲染,不是吗?

2
是的,你说得对,CRA使用客户端渲染。React也可以进行服务器渲染。例如,Razzle同时使用了服务器端渲染和客户端渲染。 - Tholle
毫无根据地发表言论,甚至没有提供链接是没有意义的。你显然断章取义了引用。React使用服务器端渲染还是客户端渲染? - 两者都有。 - Estus Flask
3
@estus 没有人有意图误导任何事情。这是一个合法的问题。 - M -
@Marquizzo 我并没有指责任何人。但是这个问题可以用更建设性的方式来提问。以这种形式提问容易引起猜测。我确信一篇文章并没有真正说明React仅使用服务器端渲染。 - Estus Flask
这个回答解决了你的问题吗?ReactJS服务器端渲染与客户端渲染 - Josh Correia
4个回答

6

这是前端的内容。但是,类似React这样的前端库可以在服务器端使用node进行预渲染,通常用于搜索引擎优化。


1
谢谢。但是在像Heroku或Netlify这样的服务器上会发生什么?他们是否使用节点服务器或类似技术来在服务器上呈现React应用程序? - user1941537
1
@user1941537,您可以在Heroku上设置一个服务器渲染的React应用程序,它将在Node.js中运行,就像您所说的那样。Netlify更适合静态资源,因此您可以仅提供客户端渲染的SPA或使用例如Gatsby预渲染的应用程序。 - Tholle

4

开箱即用,它在客户端渲染。

但是,如果您需要在服务器上呈现页面,则可以使用以下方法实现:

Next.jsHypernova或任何其他工具(现在有很多!)

请注意,SSR将需要比常规React应用程序更多的经验。

此方法的主要目标是允许搜索引擎机器人从网页中抓取信息(SEO)。


1
几年过去了,相较于上一次的回答,现在实现一个仅客户端的React应用变得非常困难 - 在Node上提供服务是微不足道的,并且完全符合其期望,尝试将其作为带有其他服务器支持的客户端库使用更具挑战性,而如何执行此操作的文档则零散且大部分已过时。

1

create-react-app 默认使用客户端渲染。还有一些工具,比如 next jsgatsby js,可以在服务器端预渲染页面。您也可以从头开始进行服务器端渲染。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接