为什么要使用React服务器端渲染

Ego*_*_sx 4 javascript reactjs

我刚刚学会了反应并打算将它用于我的下一个项目.我遇到了几次反应服务器端渲染,但想知道为什么我们仍然需要它在"现代时代".

在本文中,它认为使用服务器端呈现,用户不必等待从CDN或某处加载那些js以查看初始静态页面,并且页面将在js到达时恢复功能.

但是在使用webpack生成配置和gzip构建之后,整个捆绑包(带有react,我的代码和许多其他东西)只需要40kb,而且我有它的CDN.我不太清楚为我的情况使用服务器端渲染的原因.

所以问题是为什么人们仍然使用服务器端渲染,如果生成的javascript包在gzip之后如此之小?

Dan*_*nce 10

加载时间

可以在初始HTTP请求的响应中提供应用程序的呈现视图.在传统的单页面Web应用程序中,第一个请求将返回,浏览器将解析HTML,然后对脚本进行后续请求 - 最终将呈现页面.这些请求仍然会发生,但它们不会妨碍用户查看初始数据.

这对快速互联网连接没有太大影响,但对于低网络覆盖区域的移动设备上的用户,这种初始数据呈现可以使应用程序渲染速度提高20-30秒.

具有静态数据的视图也可以在网络级别进行缓存,这意味着可以使用非常少的计算开销来提供React应用程序的渲染视图

SEO

当搜索引擎爬虫到达网页时,将提供HTML并检查静态内容并将其编入索引.在纯客户端Javascript应用程序中,没有静态内容.一旦适当的脚本加载并运行,它就会被动态创建和注入.

与React不同,大多数框架无法将其组件图序列化为HTML,然后重新填充它.他们必须使用更复杂的方法,这通常涉及在服务器上的无头浏览器中呈现其页面,然后在爬虫请求时提供该版本.

React可以将组件树从服务器端JS环境(如Node.js)渲染为HTML字符串,然后立即提供.无需无头浏览器或额外的复杂功能.

NOSCRIPT

它还允许您编写优雅降级的应用程序,并最终可用作瘦客户端.这意味着处理在服务器上进行,应用程序可以在禁用Javascript的浏览器中使用.这是否是一个重要的市场需要考虑是另一个时间的辩论.