useNavigation
导航结构管理 Composable。
概述
管理文档导航结构,提供导航树处理和面包屑生成功能。
使用示例
基础用法
<script setup lang="ts">
import type { ContentNavigationItem } from '@nuxt/content'
const navigation = inject<Ref<ContentNavigationItem[]>>('navigation')
const { rootNavigation, navigationByCategory, findBreadcrumb } = useNavigation(navigation!)
const route = useRoute()
const breadcrumb = computed(() => findBreadcrumb(route.path))
</script>
<template>
<div>
<!-- 顶级导航 -->
<UNavigationMenu :items="rootNavigation" />
<!-- 侧边栏分类导航 -->
<UContentNavigation :navigation="navigationByCategory" />
<!-- 面包屑 -->
<UBreadcrumb :items="breadcrumb" />
</div>
</template>
在 Layout 中使用
<script setup lang="ts">
const { data: navigation } = await useAsyncData('navigation', () =>
fetchContentNavigation()
)
provide('navigation', navigation)
const { navigationByCategory } = useNavigation(navigation!)
</script>
<template>
<div class="flex">
<aside>
<UContentNavigation :navigation="navigationByCategory" />
</aside>
<main>
<slot />
</main>
</div>
</template>
API
useNavigation(navigation)
处理导航树,提供导航和面包屑功能。
参数
navigation
Ref<ContentNavigationItem[]> required
Nuxt Content 提供的导航数据。
返回值
rootNavigation
ComputedRef<ContentNavigationItem[]>
根级导航项数组。
navigationByCategory
ComputedRef<ContentNavigationItem[]>
按分类分组的当前页面子导航。
findBreadcrumb
(path: string) => ContentNavigationItem[]
生成指定路径的面包屑导航。
Changelog
586a5 — ✨ feat: 添加 Nuxt 文档主题 layer 核心代码