# ランタイム API {#runtime-api} VitePress には、アプリのデータへアクセスするための組み込み API がいくつか用意されています。さらに、グローバルに使用できる組み込みコンポーネントも提供されています。 ヘルパーメソッドは `vitepress` からグローバルインポートでき、主にカスタムテーマの Vue コンポーネントで使われます。Markdown ファイルは Vue の [Single File Component](https://vuejs.org/guide/scaling-up/sfc.html) にコンパイルされるため、`.md` ファイル内でも使用できます。 `use*` で始まるメソッドは [Vue 3 Composition API](https://vuejs.org/guide/introduction.html#composition-api) の関数(Composable)で、`setup()` または ` ``` ## `useRoute` 現在のルートオブジェクトを返します。型は次のとおりです。 ```ts interface Route { path: string data: PageData component: Component | null } ``` ## `useRouter` VitePress のルーターインスタンスを返し、プログラムで別ページへ遷移できます。 ```ts interface Router { /** * 現在のルート */ route: Route /** * 新しい URL へ遷移 */ go: (to?: string) => Promise /** * ルートが変わる前に呼ばれる。`false` を返すと遷移をキャンセル */ onBeforeRouteChange?: (to: string) => Awaitable /** * ページコンポーネントが読み込まれる前(履歴が更新された後)に呼ばれる。 * `false` を返すと遷移をキャンセル */ onBeforePageLoad?: (to: string) => Awaitable /** * ページコンポーネントが読み込まれた後(更新前)に呼ばれる */ onAfterPageLoad?: (to: string) => Awaitable /** * ルートが変わった後に呼ばれる */ onAfterRouteChange?: (to: string) => Awaitable } ``` ## `withBase` - **型**: `(path: string) => string` 設定された [`base`](./site-config#base) を指定の URL パスに付与します。[Base URL](../guide/asset-handling#base-url) も参照。 ## `` レンダリング済みの Markdown コンテンツを表示します。[独自テーマの作成時](../guide/custom-theme) に便利です。 ```vue ``` ## `` スロット内容をクライアント側でのみレンダリングします。 VitePress アプリは静的ビルド時に Node.js 上でサーバーレンダリングされるため、Vue の使用はユニバーサルコードの要件に従う必要があります。要するに、ブラウザ/DOM API へのアクセスは beforeMount / mounted フック内に限定してください。 SSR 非対応(例: カスタムディレクティブを含む)なコンポーネントを使用・デモする場合は、`ClientOnly` でラップできます。 ```vue-html ``` - 関連: [SSR 互換性](../guide/ssr-compat) ## `$frontmatter` Vue の式内で現在ページの [フロントマター](../guide/frontmatter) に直接アクセスします。 ```md --- title: Hello --- # {{ $frontmatter.title }} ``` ## `$params` Vue の式内で現在ページの [動的ルートのパラメータ](../guide/routing#dynamic-routes) に直接アクセスします。 ```md - package name: {{ $params.pkg }} - version: {{ $params.version }} ```