vue SSG实现
Vue SSG 实现方法
Vue SSG(Static Site Generation,静态站点生成)是一种将 Vue 应用预渲染为静态 HTML 文件的技术,适合内容为主的网站,如博客、文档或营销页面。以下是实现 Vue SSG 的几种常见方法:
使用 VuePress
VuePress 是一个基于 Vue 的静态站点生成器,专为技术文档设计,但也支持其他内容类型。安装 VuePress 后,通过配置文件生成静态页面。
npm install -D vuepress
创建 docs 目录作为内容根目录,配置 config.js 定义站点结构。运行以下命令生成静态文件:
vuepress build docs
使用 Nuxt.js
Nuxt.js 是一个基于 Vue 的框架,支持 SSG 模式。通过配置 nuxt.config.js 启用静态生成:
export default {
target: 'static'
}
运行生成命令:
npx nuxt generate
Nuxt 会自动为每个路由生成静态 HTML 文件,并支持动态路由的预渲染。
使用 VitePress
VitePress 是 VuePress 的现代化替代品,基于 Vite 构建,速度更快。安装 VitePress 后,通过 Markdown 文件组织内容:
npm install -D vitepress
配置 config.js 并运行构建命令:
vitepress build docs
自定义 SSG 方案
对于需要高度定制的场景,可以直接使用 Vue 的 SSR 能力结合静态渲染工具。安装 @vue/server-renderer 和 fs-extra 等工具,编写脚本将组件渲染为 HTML 文件:

import { renderToString } from '@vue/server-renderer'
import { createApp } from './app.js'
const app = createApp()
const html = await renderToString(app)
await fs.outputFile('dist/index.html', html)
关键注意事项
- 动态数据:SSG 适合内容变化不频繁的场景。动态数据需通过客户端 JavaScript 或 API 调用补充。
- 路由处理:确保所有路由都有对应的静态文件,动态路由需在生成时预渲染。
- 部署:生成的
dist或output目录可直接部署到 Netlify、Vercel 或静态托管服务。
以上方法可根据项目需求选择,VuePress 和 Nuxt.js 适合快速启动,自定义方案适合复杂场景。






