# 런타임 API {#runtime-api} VitePress는 애플리케이션 데이터를 액세스할 수 있는 여러 내장 API를 제공합니다. 그리고 전역적으로 사용할 수 있는 몇 가지 내장 컴포넌트도 제공합니다. 헬퍼 메서드는 `vitepress`에서 전역적으로 사용할 수 있으며, 주로 커스텀 테마의 Vue 컴포넌트에서 사용됩니다. 또한 마크다운 파일이 Vue [단일 파일 컴포넌트](https://vuejs.org/guide/scaling-up/sfc.html)로 컴파일되기 때문에 `.md` 페이지 내에서도 사용할 수 있습니다. `use*`로 시작하는 메서드는 [Vue 3 Composition API](https://vuejs.org/guide/introduction.html#composition-api) 함수("컴포저블")를 나타내며, 이는 `setup()` 또는 ` ``` ## `useRoute` 다음과 같은 타입으로 현재 라우트 객체를 반환합니다: ```ts interface Route { path: string data: PageData component: Component | null } ``` ## `useRouter` 프로그래밍 방식으로 다른 페이지로 이동할 수 있도록 VitePress 라우터 인스턴스를 반환합니다. ```ts interface Router { /** * 현재 route. */ route: Route /** * 새 URL로 이동. */ go: (to?: string) => Promise /** * 라우트가 변경되기 전에 호출. 탐색을 취소하려면 `false`를 반환. */ onBeforeRouteChange?: (to: string) => Awaitable /** * 페이지 컴포넌트가 로드되기 전(히스토리 상태가 업데이트된 후)에 호출. * 탐색을 취소하려면 `false`를 반환. */ onBeforePageLoad?: (to: string) => Awaitable /** * 라우트가 변경된 후 호출. */ onAfterRouteChanged?: (to: string) => Awaitable } ``` ## `withBase` - **타입**: `(path: string) => string` 구성된 [`base`](./site-config#base)를 지정된 URL 경로에 추가합니다. [Base URL](../guide/asset-handling#base-url)을 참고하세요. ## `` `` 컴포넌트는 렌더링된 마크다운 내용을 표시합니다. [커스텀 테마를 만들 때](../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 }} ```