Skip to content

服务端渲染

最近各个框架都开始发布属于自己的服务端渲染方案。

服务端渲染我觉得有两个好处:

  • 更好的SEO
  • 更好的浏览体验

至于坏处,我个人认为只有一个,那就是项目会占用更多服务器的资源。

如果玩过服务器的朋友,应该知道,服务器的内存是非常昂贵的,往往增加1G的内存,每个月就需要多增加几十块钱的服务器成本。

而使用服务端渲染,相当于是在服务器上面启动了一个Node服务,而Node服务是基于V8引擎的,V8占用内存量非常大,一般一个服务端渲染项目占用内存高达1G~2G。

而如果使用客户端渲染,那么一个项目占用服务器的内存量几乎可以忽略不计。

同时服务端渲染不光吃服务器的内存,还会占用服务器的CPU资源。

因为服务器会运行编译器将js代码编译成HTML。

所以很多框架都附带编译时服务端渲染方案,即在编译的时候,就将相关的代码渲染成HTML,这样既拥有了更好的体验、SEO,又减少服务器的资源开销。

编译时和运行时

既然编译时就能将代码渲染成HTML,那么为什么还需要运行时呢?

由于现在的项目结构都是前后端分离,所以很多动态内容需要请求后端进行获取实时数据,编译时无法获取实时数据,而运行时可以在服务端获取这些数据后,渲染成HTML,然后返回给客户端。

框架推荐

Next.js

React 技术栈服务端渲染框架,同时React 19与其深度绑定,React 19中推出的服务器组件需要配合Next使用。

Nuxt.js

Vue 技术栈服务端渲染框架。

Astro.js

一个新晋的前端框架。它可以用来构建个人网站、博客,支持MD、MDX文件,同时使用插件可以扩展支持React、Vue组件。