Skip to content

VitePress API 使用示例 - 测试

本页面演示了 VitePress 提供的运行时 API 的使用方法和实际效果。

🚀 useData() API

useData() 是 VitePress 的核心 API,用于访问当前页面的站点、主题和页面数据。它可以在 .md.vue 文件中使用:

基本用法

md
```vue
<script setup>
import { useData } from 'vitepress'

const { site, theme, page, frontmatter } = useData()
</script>

## 数据展示

### 站点信息
<pre>{{ site }}</pre>

### 主题配置
<pre>{{ theme }}</pre>

### 页面数据
<pre>{{ page }}</pre>

### 页面前言
<pre>{{ frontmatter }}</pre>
```

📊 实际数据展示

说明

以下展示的是当前页面的实际数据,这些数据由 VitePress 的 useData() API 动态获取:

站点信息

javascript
// 使用 useData() 获取站点信息
const { site } = useData()

console.log('站点标题:', site.title)
console.log('站点描述:', site.description) 
console.log('基础路径:', site.base)

实际输出:

  • 站点标题: NodePro8 投研文档中心
  • 站点描述: NodePro8投研相关文档内容
  • 基础路径: /

主题配置

javascript
// 获取主题配置
const { theme } = useData()

console.log('导航菜单:', theme.nav)
console.log('侧边栏:', theme.sidebar)

实际输出:

  • 导航菜单数量: 2 个
  • 侧边栏配置: 已配置

页面数据

javascript
// 获取当前页面数据
const { page } = useData()

console.log('页面标题:', page.title)
console.log('页面路径:', page.relativePath)
console.log('最后更新:', page.lastUpdated)

实际输出:

  • 页面标题: VitePress API 使用示例 - 测试
  • 页面路径: api-examples.md
  • 最后更新: 未知

页面前言 (Frontmatter)

javascript
// 获取页面前言数据
const { frontmatter } = useData()

console.log('大纲深度:', frontmatter.outline)

实际输出:

  • 大纲深度: deep

💡 实用示例

动态显示页面标题

vue
<template>
  <h1>当前页面:{{ page.title }}</h1>
</template>

<script setup>
import { useData } from 'vitepress'
const { page } = useData()
</script>

效果:

当前页面:VitePress API 使用示例 - 测试

条件渲染

vue
<template>
  <div v-if="frontmatter.draft">
    <p>⚠️ 这是草稿页面</p>
  </div>
</template>

<script setup>
import { useData } from 'vitepress'
const { frontmatter } = useData()
</script>

主题切换状态

vue
<template>
  <p>当前主题模式:{{ isDark ? '🌙 暗色' : '☀️ 亮色' }}</p>
</template>

<script setup>
import { useData } from 'vitepress'
const { isDark } = useData()
</script>

🛠️ 其他有用的 API

useRouter()

javascript
import { useRouter } from 'vitepress'

const router = useRouter()
// 编程式导航
router.go('/path/to/page')

useRoute()

javascript
import { useRoute } from 'vitepress'

const route = useRoute()
console.log(route.path) // 当前路径
console.log(route.data) // 当前页面数据

📚 更多信息

查看 VitePress Runtime API 完整文档 了解所有可用的 API。

提示

这些 API 主要用于创建动态组件和自定义主题。在普通的 Markdown 文档中,您通常不需要直接使用这些 API。

注意

运行时 API 只能在浏览器环境中使用,不能在构建时的服务端渲染过程中使用。