title: Vue 全局上下文

Vue 全局上下文 {#vue-global-context}

Slidev 注入了一个 全局的 Vue 上下文 $slidev,它用于高级的条件判断或导航控制。

用法 {#usage}

你可以在你的 markdown 文件以及 Vue 模板的任何位置使用 “Mustache” 语法 访问它。

  1. <!-- slides.md -->
  2. # Page 1
  3. Current page is: {{ $slidev.nav.currentPage }}
  1. <!-- Foo.vue -->
  2. <template>
  3. <div>Title: {{ $slidev.configs.title }}</div>
  4. <button @click="$slidev.nav.next">Next Page</button>
  5. </template>

属性 {#properties}

$slidev.nav {#slidev-nav}

一个响应式对象,它拥有幻灯片导航的属性以及控制权。例如:

  1. $slidev.nav.next() // 执行下一步
  2. $slidev.nav.nextSlide() // 跳转下一张幻灯片 (忽略 v-clicks)
  3. $slidev.nav.go(10) // 去到幻灯片的第 10 页
  1. $slidev.nav.currentPage // 获取当前幻灯片的页数
  2. $slidev.nav.currentLayout // 当前的布局 id
  3. $slidev.nav.clicks // 目前的点击次数

欲了解更多可用属性,请参阅 nav.ts 的 exports。

$slidev.configs {#slidev-configs}

一个响应式对象,它存储着你 slides.md 中解析后的 第一个 frontmatter 中的配置。例如:

  1. ---
  2. title: My First Slidev!
  3. ---
  1. {{ $slidev.configs.title }} // 'My First Slidev!'

$slidev.themeConfigs {#slidev-themeconfigs}

一个响应式对象,它存储着解析后的主题配置。

  1. ---
  2. title: My First Slidev!
  3. themeConfig:
  4. primary: #213435
  5. ---
  1. {{ $slidev.themeConfigs.primary }} // '#213435'