# API Reference ## Helper Methods The following methods are globally importable from `vitepress` and are typically used in custom theme Vue components. However, they are also usable inside `.md` pages because markdown files are compiled into Vue single-file components. Methods that start with `use*` indicates that it is a [Vue 3 Composition API](https://vuejs.org/guide/introduction.html#composition-api) function that can only be used inside `setup()` or ` ``` ### `useRoute` Returns the current route object with the following type: ```ts interface Route { path: string data: PageData component: Component | null } ``` ### `useRouter` Returns the VitePress router instance so you can programmatically navigate to another page. ```ts interface Router { route: Route go: (href?: string) => Promise } ``` ### `withBase` - **Type**: `(path: string) => string` Appends the configured [`base`](../config/basics#base) to a given URL path. Also see [Base URL](./assets#base-url). ## Global Components VitePress comes with few built-in component that can be used globally. You may use these components in your markdown or your custom theme configuration. ### `` The `` component displays the rendered markdown contents. Useful [when creating your own theme](./theming). ```vue ``` ### `` The `` component renders its slot only at client side. Because VitePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the universal code requirements. In short, make sure to only access Browser / DOM APIs in beforeMount or mounted hooks. If you are using or demoing components that are not SSR-friendly (for example, contain custom directives), you can wrap them inside the `ClientOnly` component. ```html ```