当前位置: 首页 > article >正文

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

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.kler.cn/a/600397.html

相关文章:

  • Python:单例模式魔法方法
  • 【机器学习】--二分类
  • flink广播算子Broadcast
  • matlab近似计算联合密度分布
  • 当汉堡遇上便当:TypeScript命名空间 vs JavaScript模块化
  • 销售易CRM:技术革新助力客户关系管理智能化
  • DHCPv6 Stateless Vs Stateful Vs Stateless Stateful
  • 关于网络的一点知识(持续更新)
  • 【第二月_day7】Pandas 简介与数据结构_Pandas_ day1
  • 数据结构——链式队列
  • Spring Security核心源码和功能实现
  • M芯片mac安装Linux虚拟机
  • HTML和CSS基础
  • 数据结构初阶-二叉树的应用
  • 1688关键字API接口解析:(实战案例)
  • Day110 若依-基础
  • mysql数据实时全量+增量迁移
  • 【论文笔记】生成对抗网络 GAN
  • 统一开放世界与开放词汇检测:YOLO-UniOW无需增量学习的高效通用开放世界目标检测框架
  • 开源视觉语言模型MiniMax-VL-01:动态分辨率+4M超长文本,性能比肩GPT-4o