diff --git a/docs/ru/reference/runtime-api.md b/docs/ru/reference/runtime-api.md new file mode 100644 index 00000000..0bcade4b --- /dev/null +++ b/docs/ru/reference/runtime-api.md @@ -0,0 +1,165 @@ +# Runtime API {#runtime-api} + +VitePress предлагает несколько встроенных API, позволяющих получить доступ к данным приложения. VitePress также поставляется с несколькими встроенными компонентами, которые можно использовать глобально. + +Вспомогательные методы глобально импортируются из `vitepress` и обычно используются в компонентах Vue для пользовательских тем. Однако их можно использовать и внутри страниц `.md`, так как файлы markdown компилируются в [однофайловые компоненты](https://vuejs.dragomano.ru/guide/scaling-up/sfc.html) Vue. + +Методы, начинающиеся с `use*`, указывают на то, что это функция [Vue 3 Composition API](https://vuejs.dragomano.ru/guide/introduction.html#composition-api) («композабл»), которая может быть использована только внутри `setup()` или ` + + +``` + +## `useRoute` {#useroute} + +Возвращает текущий объект маршрута со следующим типом: + +```ts +interface Route { + path: string + data: PageData + component: Component | null +} +``` + +## `useRouter` {#userouter} + +Возвращает экземпляр маршрутизатора VitePress, чтобы вы могли программно перейти на другую страницу. + +```ts +interface Router { + /** + * Текущий маршрут. + */ + route: Route + /** + * Переход к новому URL-адресу. + */ + go: (to?: string) => Promise + /** + * Вызывается перед изменением маршрута. Верните `false`, чтобы отменить навигацию. + */ + onBeforeRouteChange?: (to: string) => Awaitable + /** + * Вызывается перед загрузкой компонента страницы (после того, как состояние истории + * обновлено). Верните `false`, чтобы отменить навигацию. + */ + onBeforePageLoad?: (to: string) => Awaitable + /** + * Вызывается после изменения маршрута. + */ + onAfterRouteChanged?: (to: string) => Awaitable +} +``` + +## `withBase` {#withbase} + +- **Тип**: `(path: string) => string` + +Добавляет настроенный [`base`](./site-config#base) к заданному URL-пути. Также смотрите раздел [Базовый URL](../guide/asset-handling#base-url). + +## `` {#content} + +Компонент `` отображает отрисованное содержимое Markdown. Полезно [при создании собственной темы](../guide/custom-theme). + +```vue + +``` + +## `` {#clientonly} + +Компонент `` отображает свой слот только на стороне клиента. + +Поскольку приложения VitePress при генерации статических сборок рендерятся в Node.js, любое использование Vue должно соответствовать универсальным требованиям к коду. Короче говоря, убедитесь, что доступ к API Browser / DOM осуществляется только в хуках `beforeMount` или `mounted`. + +Если вы используете или демонстрируете компоненты, которые не являются SSR-дружественными (например, содержат пользовательские директивы), вы можете обернуть их внутри компонента `ClientOnly`. + +```vue-html + + + +``` + +- См. также: [Совместимость с SSR](../guide/ssr-compat) + +## `$frontmatter` {#frontmatter} + +Прямой доступ к [метаданным](../guide/frontmatter) текущей страницы в выражениях Vue. + +```md +--- +title: Привет +--- + +# {{ $frontmatter.title }} +``` + +## `$params` {#params} + +Прямой доступ к параметрам [динамических маршрутов](../guide/routing#dynamic-routes) текущей страницы в выражениях Vue. + +```md +- имя пакета: {{ $params.pkg }} +- версия: {{ $params.version }} +```