close
  • 中文
  • PageTabs experimental

    Info

    PageTabs 组件用于在同一页面中创建子标签页,将内容拆分成多个子页面。为了保证锚点跳转和 TOC 生成的正确性,每个页面有且仅允许一个 PageTabs。

    API
    实现原理

    基础使用

    docs/guide/getting-started.mdx
    # Getting started
    
    import { PageTabs, PageTab } from '@rspress/core/theme';
    
    <PageTabs>
    <PageTab label="PageTab 1">
    
    ## Foo
    
    </PageTab>
    
    <PageTab label="PageTab 2">
    
    ## Bar
    
    </PageTab>
    </PageTabs>

    配合 MDX 片段使用

    更推荐配合 MDX 片段 将一个页面拆分成多个子页面

    docs/guide/getting-started.mdx
    # Getting started
    
    import { PageTabs, PageTab } from '@rspress/core/theme';
    import Foo from './fragments/_foo.mdx';
    import Bar from './fragments/_bar.mdx';
    
    <PageTabs>
      <PageTab label="PageTab 1">
        <Foo />
      </PageTab>
      <PageTab label="PageTab 2">
        <Bar />
      </PageTab>
    </PageTabs>

    Dynamic TOC

    从 V1 用户反馈中,我们发现使用包含标题的 MDX 片段 时常常会遇到 TOC 静态提取不正确的问题。

    Rspress V2 引入了 Dynamic TOC,在运行时通过 MutationObserver 监听 DOM 变化并动态生成 TOC,既保证准确性,也让你可以充分发挥 MDX 片段 的灵活性,这也使得 <PageTabs /> 组件成为可能。

    import { useDynamicTOC } from '@rspress/core/theme';