🚧 Rspress 2.0 文档还在开发中
close

PageTabs experimental

Info

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

API
实现原理

基础使用

docs/guide/getting-started.mdx
# Getting started

import { PageTabs, PageTab } from '@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 '@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 '@theme';