你正在查看 Lit 的旧版本文档。点击 这里查看最新版本。

服务端渲染(SSR)

This package is part of the Lit Labs family of experimental packages. See the Lit Labs page for guidance on using Labs software in production.

服务端渲染(SSR)是一种在 JavaScript 实现加载和执行之前,生成并提供组件 HTML(包括 Shadow DOM 和样式)的技术。

你可以出于多种原因使用 SSR:

  • 性能。某些网站可以通过先渲染静态 HTML 而不等待 JavaScript 加载来更快地渲染,然后(可选地)加载页面的 JavaScript 并对组件进行水合。
  • SEO 和网络爬虫。虽然主要的搜索引擎爬虫使用完整支持 JavaScript 的浏览器来渲染页面,但并非所有网络爬虫都支持 JavaScript。
  • 健壮性。即使 JavaScript 加载失败或用户禁用了 JavaScript,静态 HTML 仍然可以渲染。

要更深入地了解服务端渲染的概念和技术,请参阅 web.dev 上的 Rendering on the Web

Lit 通过 Lit SSR 包支持服务端渲染。Lit SSR 在 Node 等非浏览器 JavaScript 环境中将 Lit 组件和模板渲染为静态 HTML 标记。它无需完全模拟浏览器的 DOM,并利用 Lit 的声明式模板格式来实现快速性能、低首字节时间和流式传输支持。

Lit SSR 是一个底层库,你可以直接在基于 Node 的服务器或站点生成器中使用。查看 在 Koa 服务器中使用 Lit SSR 的示例

目前已经发布了一些集成方案,使 Lit SSR 可以开箱即用:

该库正在积极开发中,存在一些我们希望解决的已知限制:

  • 不支持异步组件操作。参见 issue #3219#2469
  • 仅支持使用 Shadow DOM 的 Lit 组件。参见 issue #3080
  • 与其他 SSR 框架的集成正在开发中。参见 NextJSNuxt 的 issue。
  • 声明式 Shadow DOM 尚未在所有主流浏览器中实现,但已有可用的 polyfill。在客户端用法中了解更多。
  • 关于 ElementRendererRegistry 与其他自定义元素的互操作性,还有一些待讨论的问题。