VuePress侧边栏配置与useSidebar的使用方式

 更新时间:2025年06月16日 09:47:43   作者:红衣大叔  
这篇文章主要介绍了VuePress侧边栏配置与useSidebar的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

VuePress侧边栏配置与useSidebar的使用

在VuePress中,侧边栏(Sidebar)是一个重要的组成部分,用于组织文档结构,提供给用户方便的导航体验。

本文将详细介绍如何配置侧边栏,并介绍如何使用 useSidebar 组合式函数来操作侧边栏的状态。

单一侧边栏的配置

最简单的侧边栏配置方式是通过一个数组来定义导航结构。每个第一级的项目定义了一个“部分”(section),它应该包含一个文本标题(text)以及实际的导航链接(items)。

  • 例如:
export default {
  themeConfig: {
    sidebar: [
      {
        text: 'Section Title A',
        items: [
          { text: 'Item A', link: '/item-a' },
          { text: 'Item B', link: '/item-b' },
          // 更多子项...
        ]
      },
      {
        text: 'Section Title B',
        items: [
          { text: 'Item C', link: '/item-c' },
          { text: 'Item D', link: '/item-d' },
          // 更多子项...
        ]
      }
    ]
  }
}

每个链接应指定以 / 开头的实际文件路径。如果链接的末尾加上斜杠,则表示指向对应目录下的 index.md 文件。

多个侧边栏的配置

你可以根据页面路径来显示不同的侧边栏。例如,你可以为不同的文档部分配置单独的侧边栏。

  • 首先按需组织Markdown文件:
.
├─ guide/
│  ├─ index.md
│  ├─ one.md
│  └─ two.md
└─ config/
   ├─ index.md
   ├─ three.md
   └─ four.md
  • 然后更新配置文件以定义每个部分的侧边栏:
export default {
  themeConfig: {
    sidebar: {
      '/guide/': [
        {
          text: 'Guide',
          items: [
            { text: 'Index', link: '/guide/' },
            { text: 'One', link: '/guide/one' },
            { text: 'Two', link: '/guide/two' }
          ]
        }
      ],
      '/config/': [
        {
          text: 'Config',
          items: [
            { text: 'Index', link: '/config/' },
            { text: 'Three', link: '/config/three' },
            { text: 'Four', link: '/config/four' }
          ]
        }
      ]
    }
  }
}

可折叠的侧边栏组

在侧边栏中添加可折叠的功能,可以让用户通过点击切换按钮来隐藏或显示某个部分的内容。这有助于在内容较多的情况下保持界面的整洁,并提供更好的用户体验。

要配置可折叠的侧边栏组,可以在定义侧边栏的配置中为每个部分添加一个 collapsed 属性。

  • 例如:
export default {
  themeConfig: {
    sidebar: [
      {
        text: 'Section Title A',
        collapsed: false, // 默认展开
        items: [
          { text: 'Item A', link: '/item-a' },
          { text: 'Item B', link: '/item-b' },
          // 更多子项...
        ]
      },
      {
        text: 'Section Title B',
        collapsed: true, // 默认收起
        items: [
          { text: 'Item C', link: '/item-c' },
          { text: 'Item D', link: '/item-d' },
          // 更多子项...
        ]
      }
    ]
  }
}

使用 useSidebar 组合式函数

  • useSidebar 是一个组合式函数,提供了与侧边栏相关数据的访问。它返回一个包含多个响应式引用(Ref)和一些实用函数的对象。
export interface DocSidebar {
  isOpen: Ref<boolean>,
  sidebar: ComputedRef<DefaultTheme.SidebarItem[]>,
  sidebarGroups: ComputedRef<DefaultTheme.SidebarItem[]>,
  hasSidebar: ComputedRef<boolean>,
  hasAside: ComputedRef<boolean>,
  leftAside: ComputedRef<boolean>,
  isSidebarEnabled: ComputedRef<boolean>,
  open: () => void,
  close: () => void,
  toggle: () => void
}
  • 使用 useSidebar 的示例如下:
<script setup>
import { useSidebar } from '@vuepress/theme-default';

const { hasSidebar } = useSidebar();
</script>

<template>
  <div v-if="hasSidebar">仅在存在侧边栏时显示</div>
</template>

通过这种方式,你可以更灵活地管理和控制侧边栏的行为,以增强用户体验并使页面布局更加动态和响应式。

总结

通过合理的侧边栏配置,可以显著提升文档的导航性和用户体验。无论是单一的侧边栏还是根据不同路径显示的多个侧边栏,VuePress 都提供了丰富的配置选项。同时,useSidebar 组合式函数进一步增强了侧边栏的交互性和动态性。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue + Echarts页面内存占用高的问题解决方案

    Vue + Echarts页面内存占用高的问题解决方案

    点击左侧的菜单可以切换不同的看板,有些看板页面中的报表比较多,用户多次切换后页面的内存占用可以上升为GB级,严重时导致页面内存溢出,使得页面崩溃,极大影响了用户体验,本文给大家介绍Vue + Echarts页面内存占用高的问题解决方案,感兴趣的朋友一起看看吧
    2024-02-02
  • vue+element-plus上传图片及回显问题及数量限制

    vue+element-plus上传图片及回显问题及数量限制

    本文主要介绍了vue+element-plus上传图片及回显问题及数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue.js项目 el-input 组件 监听回车键实现搜索功能示例

    vue.js项目 el-input 组件 监听回车键实现搜索功能示例

    今天小编就为大家分享一篇vue.js项目 el-input 组件 监听回车键实现搜索功能示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue生成随机验证码的示例代码

    vue生成随机验证码的示例代码

    本篇文章主要介绍了vue生成随机验证码的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧‘
    2017-09-09
  • 通过命令行创建vue项目的方法

    通过命令行创建vue项目的方法

    这篇文章主要介绍了通过命令创建vue项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 关于vue-router的那些事儿

    关于vue-router的那些事儿

    要学习vue-router就要先知道这里的路由是什么?为什么我们不能像原来一样直接用标签编写链接哪?vue-router如何使用?常见路由操作有哪些?等等这些问题,就是本篇要探讨的主要问题,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • vue项目中的组件传值方式

    vue项目中的组件传值方式

    这篇文章主要介绍了vue项目中的组件传值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Vue 刷新当前路由的实现代码

    Vue 刷新当前路由的实现代码

    这篇文章主要介绍了Vue 刷新当前路由的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Vue3前端做打印页面信息实现打印功能(打印界面某个部分)

    Vue3前端做打印页面信息实现打印功能(打印界面某个部分)

    这篇文章主要介绍了如何使用vue3-print-nb依赖在Vue 3项目中实现页面打印功能,提供了完整的代码示例,大家可以根据项目需求选择合适的打印方法,需要的朋友可以参考下
    2025-02-02
  • Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例

    Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例

    这篇文章主要介绍了Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例,帮助大家更好的理解和学习vue,感兴趣的朋友可以了解下
    2020-11-11

最新评论