VitePress由 Vite 和 Vue 驱动的静态站点生成器

server/2025/3/28 2:40:51/

vitepress官网:VitePress | 由 Vite 和 Vue 驱动的静态站点生成器

将 Markdown 变成优雅的文档,只需几分钟,起初是想给我的开源项目PakePlus做一个使用说明的文档和官网的,然后就无意间了解到这个vitepress了,这个是vue的作者尤老板做的,因为项目中经常用到vite和vue,所以这里就对vitepress感觉很亲切,其实还有另外一款也不错,是rspress,他们都是很不错的静态站点生成引擎:

rspress:Rspress - 基于 Rsbuild 的静态站点生成器

但是我最终还是选择了vitepress,因为vitepress可以直接将你的项目文档存到你的项目根目录docs里面,但是rspress好像是需要单独开一个项目来编辑,所以对我来讲,存档到一个项目中更加方便实用。

VitePress 是什么?​

VitePress 是一个静态站点生成器 (SSG),专为构建快速、以内容为中心的站点而设计。简而言之,VitePress 获取用 Markdown 编写的内容,对其应用主题,并生成可以轻松部署到任何地方的静态 HTML 页面。

只是想尝试一下?跳到快速开始。

使用场景​

  • 文档

    VitePress 附带一个专为技术文档设计的默认主题。你现在正在阅读的这个页面以及 Vite、Rollup、Pinia、VueUse、Vitest、D3、UnoCSS、Iconify 等文档都是基于这个主题的。

    Vue.js 官方文档也是基于 VitePress 的。但是为了可以在不同的翻译文档之间切换,它自定义了自己的主题。

  • 博客、档案和营销网站

    VitePress 支持完全的自定义主题,具有标准 Vite + Vue 应用程序的开发体验。基于 Vite 构建还意味着可以直接利用其生态系统中丰富的 Vite 插件。此外,VitePress 提供了灵活的 API 来加载数据 (本地或远程),也可以动态生成路由。只要可以在构建时确定数据,就可以使用它来构建几乎任何东西。

    Vue.js 官方博客是一个简单的博客页面,它根据本地内容生成其索引页面。

开发体验​

VitePress 旨在使用 Markdown 生成内容时提供出色的开发体验。

  • Vite 驱动:即时服务器启动,始终立即反映 (<100ms) 编辑变化,无需重新加载页面。

  • 内置 Markdown 扩展:frontmatter、表格、语法高亮……应有尽有。具体来说,VitePress 提供了许多用于处理代码块的高级功能,使其真正成为技术文档的理想选择。

  • Vue 增强的 Markdown:每个 Markdown 页面都是 Vue 单文件组件,这要归功于 Vue 模板与 HTML 的 100% 语法兼容性。可以使用 Vue 模板语法或导入的 Vue 组件在静态内容中嵌入交互性。

性能​

与许多传统的 SSG 不同,每次导航都会导致页面完全重新加载,VitePress 生成的网站在初次访问时提供静态 HTML,但它变成了单页应用程序(SPA)进行站点内的后续导航。我们认为,这种模式为性能提供了最佳平衡:

  • 快速的初始加载

    对任何页面的初次访问都将会是静态的、预呈现的 HTML,以实现极快的加载速度和最佳的 SEO。然后页面加载一个 JavaScript bundle,将页面变成 Vue SPA (这被称为“激活”)。与 SPA 激活缓慢的常见假设不同,由于 Vue 3 良好的原始性能和编译优化,这个过程实际上非常快。在 PageSpeed Insights 上,典型的 VitePress 站点即使在网络速度较慢的低端移动设备上也能获得近乎完美的性能分数。

  • 加载完成后可以快速切换

    更重要的是,SPA 模型在首次加载后能够提升用户体验。用户在站点内导航时,不会再触发整个页面的刷新。而是通过获取并动态更新页面的内容来实现切换。VitePress 还会自动预加载视口范围内链接对应的页面片段。这样一来,大部分情况下,用户在加载完成后就能立即浏览新页面。

  • 高效的交互

    为了能够嵌入静态 Markdown 中的动态 Vue 部分,每个 Markdown 页面都被处理为 Vue 组件并编译成 JavaScript。这听起来可能效率低下,但 Vue 编译器足够聪明,可以将静态和动态部分分开,从而最大限度地减少激活成本和有效负载大小。对于初始的页面加载,静态部分会自动从 JavaScript 有效负载中删除,并在激活期间跳过。

VuePress 又是什么?​

VitePress 灵感来源于 VuePress。最初的 VuePress 基于 Vue 2 和 webpack。借助 Vue 3 和 Vite,VitePress 提供了更好的开发体验、更好的生产性能、更精美的默认主题和更灵活的自定义 API。

VitePress 和 VuePress 之间的 API 区别主要在于主题和自定义。如果使用的是带有默认主题的 VuePress 1,迁移到 VitePress 应该相对简单。

VuePress 2 我们也投入了精力,它也支持 Vue 3 和 Vite,与 VuePress 1 的兼容性更好。但是,并行维护两个 SSG 是难以持续的,因此 Vue 团队决定将重点放在 VitePress,作为长期的主要 SSG 选择推荐。

 

 


http://www.ppmy.cn/server/179060.html

相关文章

SpringMVC 跨域问题两种常用解决方案

如今前后端分离的架构模式日益普及的模式下&#xff0c;前端和后端往往部署在不同的域名或端口下&#xff0c;这就不可避免地会遇到跨域问题。本文将详细介绍SpringMVC其中两种常见且有效的解决方案。 本文目录 一、跨域简介二、为什么要解决跨域问题三、使用CrossOrigin注解1.…

技术速递|.NET AI 模板现已提供预览版

作者&#xff1a;Jordan Matthiesen 排版&#xff1a;Alan Wang 想要开始 AI 开发&#xff0c;却不确定从哪里入手&#xff1f;我给您带来了一个好消息——我们全新的 AI 聊天 Web 应用模板现已提供预览版&#xff01;&#x1f60a; 这个模板是我们持续努力的一部分成果&#x…

微服务分层架构详解:表示层、应用层与基础设施层的协同工作

微服务分层架构详解&#xff1a;表示层、应用层与基础设施层的协同工作 文章目录 微服务分层架构详解&#xff1a;表示层、应用层与基础设施层的协同工作1. 表示层&#xff08;Presentation Layer&#xff09;1.1 表示层的作用1.2 技术选型1.3 表示层的挑战 2. 应用层&#xff…

人工智能时代大学教育范式重构:基于AI编程思维的能力培养路径研究

人工智能技术的快速发展正在重塑高等教育的内容与方法。本文以AI编程教育为切入点&#xff0c;通过文献分析与案例研究&#xff0c;探讨AI时代大学教育的核心能力需求与教学范式转型路径。研究发现&#xff0c;AI编程中蕴含的系统性思维训练、项目架构能力和元认知能力培养机制…

【深度学习】Self-Attention机制详解:Transformer的核心引擎

Self-Attention机制详解&#xff1a;Transformer的核心引擎 文章目录 Self-Attention机制详解&#xff1a;Transformer的核心引擎引言Self-Attention的基本概念为什么需要Self-Attention&#xff1f; Self-Attention的数学原理1. 计算查询(Query)、键(Key)和值(Value)2. 计算注…

Ubuntu检查并启用 Nginx 的stream模块或重新安装支持stream模块的Nginx

stream 模块允许 Nginx 处理 TCP 和 UDP 流量&#xff0c;常用于负载均衡和端口转发等场景。本文将详细介绍如何检查 Nginx 是否支持 stream 模块&#xff0c;以及在需要时如何启用该模块。 1. 检查 Nginx 是否支持 stream 模块 首先&#xff0c;需要确认当前安装的 Nginx 是…

ctfshow WEB web3

提示是一道php伪协议文件包含的题目&#xff0c;通过get传递的参数是 url 使用 Burp 抓包&#xff0c;发送给 Repeater 构造php伪协议&#xff0c;通过url传递 ?urlphp://input <?php system("pwd");?> 查看当前目录 <?php system("ls");?…

智能制造:能源监控项目实战详解

随着工业化的不断发展&#xff0c;能源的消耗和管理问题日益成为制造业和园区企业面临的重大挑战。特别是在我国实施《中国制造2025》战略的背景下&#xff0c;推动绿色制造和节能减排成为国家战略的重要组成部分。如何有效地实现能源的高效利用&#xff0c;减少浪费&#xff0…