前端渲染的几种方式

608 阅读2分钟

客户端渲染 CSR (Croswer Side Render)

客户端渲染的优势是:节省后端资源,局部刷新页面,多端渲染,前后端分离。缺点是:首屏性能差,白屏,无法(或很难)进行 SEO。

而 Next.js,nuxt.js 做的是同构渲染。同一套代码既可以在服务器端渲染,也可以在客户端渲染,当我们首次访问时,换言之当我们访问首屏页面时,Next.js 使用服务器端渲染,为我们返回已经渲染完成的最终 HTML 页面。这样就同时解决了首屏白屏问题以及 SEO 问题。此后当我们再进行交互时,则使用客户端渲染。HTML、CSS、JS 等资源都不需要再重新请求,只需要通过 ajax/websocket 等途径获取数据,在客户端完成渲染过程。

静态页面生成 SSG (Static Site Generation):

当我们创建一个静态站点时,我们需要预先提供应用程序的所有内容和数据,原因是使用 SSG 意味着我们已经在构建步骤中生成了完整的 HTML 文件,在开发时通过 build 生成,例如:vitepress

我们通过这种方法获得的好处是,用户无需等待任何 Javascript 下载并执行即可看到页面上的初始内容。

服务端渲染 SSR (Server Side Render):

渲染过程在服务器端完成,最终的渲染结果 HTML 页面通过 HTTP 协议发送给客户端。对于客户端而言,只是看到了最终的 HTML 页面,看不到数据,也看不到模板。

服务器端渲染的优势就是容易 SEO,首屏加载快,缺点也很明显:渲染过程在后端完成,那么肯定会耗费后端资源,费流量,即使局部页面的变化也需要重新发送整个页面。