客户端 API
客户端 API 可以通过 vuepress/client 来引入。
组合式 API
useClientData
- 详情: - 返回所有客户端数据的 Ref 对象。 - 每个属性也可以通过下列的组合式 API 来访问。 
- 示例: 
<script setup lang="ts">
import { useClientData } from 'vuepress/client'
const {
  pageData,
  pageFrontmatter,
  pageHead,
  pageHeadTitle,
  pageLang,
  routeLocale,
  siteData,
  siteLocaleData,
} = useClientData()
</script>usePageData
- 详情: - 返回当前页面数据的 Ref 对象。 
- 参考: 
usePageFrontmatter
- 详情: - 返回当前页面 Frontmatter 的 Ref 对象。 - 它的值是页面数据的 - frontmatter属性。
usePageHead
usePageHeadTitle
- 详情: - 返回当前页面 Head 中的标题的 Ref 对象。 - 它的值是连接页面标题和站点标题后得到的。 
usePageLang
- 详情: - 返回当前页面语言的 Ref 对象。 - 它的值是页面数据的 - lang属性。
useRoutes
- 详情: - 返回所有路由的 Ref 对象。 - 它的值是站点数据的路由信息。 
- 参考: 
useRouteLocale
- 详情: - 返回当前路由对应的 locale path 的 Ref 对象。 - 它的值是 locales 配置的键之一。 
useSiteData
- 详情: - 返回站点数据的 Ref 对象。 
useSiteLocaleData
- 详情: - 返回当前 locale 的站点数据的 Ref 对象。 - 当前 locale 中的配置已经合并到顶层配置中。 
onContentUpdated
- 详情: - 当 markdown 文件内容发生变化时,触发回调。 - 该函数仅能在组件的 - setup阶段被调用。- <script setup> import { onContentUpdated } from 'vuepress/client' onContentUpdated((reason) => { console.log(`content updated reason: ${reason}`) }) </script>
工具函数
defineClientConfig
- 详情: - 帮助你创建 clientConfigFile 的工具函数。 
- 参考: 
resolveRoute
- 详情: - 解析给定链接对应的路由 
- 参考: 
resolveRoutePath
- 详情: - 解析给定链接对应的路由路径 
- 参考: 
withBase
- 详情: - 在 URL 前添加站点 base 前缀。 
- 参考: 
常量
在客户端代码中有一些常量可以使用。
如果想要把这些常量的类型定义补充到你的代码环境中,请将 vuepress/client-types 添加到你的 tsconfig.json 里:
{
  "compilerOptions": {
    "types": ["vuepress/client-types"]
  }
}__VUEPRESS_VERSION__
- 类型: - string
- 详情: - VuePress Core 的版本号。 
__VUEPRESS_BASE__
- 类型: - string
- 详情: - 配置中的 base 字段。 
__VUEPRESS_DEV__
- 类型: - boolean
- 详情: - 一个环境标记,用于标识当前是否运行在 - dev模式下。
__VUEPRESS_SSR__
- 类型: - boolean
- 详情: - 一个环境标记,用于标识当前是否运行在服务端渲染 (SSR) 环境下。 
进阶能力
resolvers 实验性能力
- 类型: - Record<string, Function>
- 详情: - 一个响应式对象,其中的方法决定了如何获取全局计算属性。 
- 示例: 
在客户端配置文件中自定义 <title> 的格式:
import { defineClientConfig, resolvers } from 'vuepress/client'
export default defineClientConfig({
  enhance({ app, router, siteData }) {
    resolvers.resolvePageHeadTitle = (page, siteLocale) =>
      `${siteLocale.title} > ${page.title}`
  },
})警告
resolvers 会直接影响 VuePress 的基础功能,在修改前请确保你已充分了解其用途。
