服务端渲染 (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 上的 Web 渲染

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

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

还发布了许多开箱即用的集成,使 Lit SSR 能够直接使用:

该库正在积极开发中,有一些我们希望解决的明显限制:

  • 不支持异步组件工作。请参阅问题 #2469
  • 仅支持使用 shadow DOM 的 Lit 组件。请参阅问题 #3080
  • 声明式 Shadow DOM 尚未在所有主要浏览器中实现,不过有可用的 polyfill。在客户端用法中阅读更多相关信息。
  • 还有关于与其他自定义元素互操作的 ElementRendererRegistry 的公开讨论需要进行。