为什么捐赠
API 浏览器
升级指南
创建新项目
quasar.config 配置文件
从 Webpack 项目转换
浏览器兼容性
TypeScript 支持
目录结构
命令列表
CSS 预处理器
使用 VueRouter 进行页面路由
懒加载 - 代码分割
资源处理
Boot 文件
预取特性
API 代理
配置 Vite
处理 import.meta.env
使用 Pinia 管理状态
代码检查与格式化
测试与审计
开发移动应用
Ajax 请求
开放开发服务器到公网
联系站长
Quasar CLI with Vite - @quasar/app-vite
什么是 SSG

警告!Beta 阶段

Quasar SSG 模式目前处于 “beta” 阶段。根据社区反馈,API 在未来可能会有所变动,因此每次升级 “@quasar/app-vite” 时请留意 release notes。

WARNING

运行 SSG 模式需要 Quasar UI v2.22+。

Quasar 和 Vue.js 是构建客户端应用的框架。默认情况下,Vue 组件在浏览器中生成和操纵 DOM。然而,也可以在构建时将相同的组件预渲染为 HTML 字符串,将这些静态页面直接发送到浏览器,最后在客户端将静态标记"水合"(hydrate)为完全交互式的应用。

静态生成的 Quasar 应用使用与其他 Quasar 模式相同的 Vue 架构,但在构建时将选定的路由渲染为 HTML 文件。当浏览器加载这些文件时,Vue 会对现有标记进行水合,应用随即变得可交互。

为什么选择 SSG?

与传统的 SPA(单页应用)或 SSR(服务端渲染)应用相比,SSG 的优势主要体现在:

  • 更好的初始 HTML 和 SEO。搜索引擎和链接预览爬虫收到的是已渲染的页面,而不是一个空的应用外壳。
  • 更快的首屏内容展示。CDN 或静态服务器可以直接返回预渲染的 HTML,无需等待服务器逐请求渲染。
  • 更简单的部署。生产环境不需要 Node.js 渲染服务器。您可以将生成的文件部署到 Netlify、Vercel、Cloudflare Pages、GitHub Pages 或 Amazon S3 等静态托管平台。
  • 更小的生产攻击面。渲染过程没有涉及应用服务器。客户端使用的 API 是独立的,仍然需要正常做安全防护。

使用 SSG 时也有一些需要权衡的地方:

  • 通用代码约束。与 SSR 一样,渲染期间执行的代码不能假设浏览器全局对象(如 windowdocument)存在。
  • 构建时间。每个生成的页面都必须在每次生产构建时渲染。数据量大或页面多的站点构建时间可能较长。
  • 内容时效性。构建时生成的 HTML 直到下次部署才会改变。频繁变化或用户相关的数据必须通过重新构建、客户端获取或使用混合 SSG + 部分 CSR 来更新。

SSG 非常适合文档、营销页面、博客、产品目录等可以在构建时确定内容的场景。如果大多数页面依赖于当前用户或需要每次请求都获取最新数据,SPA 或 SSR 可能更适合。

SSG 注意事项

请阅读 SSG 代码注意事项 页面,了解如何正确编写 SSG 代码以避免客户端水合错误