跳至內容
Fumadocs

目錄

目錄

具備作用中錨點偵測與自動捲動功能的目錄。

使用方式

import * as Base from 'fumadocs-core/toc';

return (
  <Base.AnchorProvider>
    <Base.ScrollProvider>
      <Base.TOCItem />
      <Base.TOCItem />
    </Base.ScrollProvider>
  </Base.AnchorProvider>
);

Anchor Provider

透過 Intersection Observer API 追蹤目前作用中的錨點。

屬性

型別

Scroll Provider

將捲動容器捲動至目前作用中的錨點。

屬性

型別

目錄項目

用於跳至目標錨點的錨點項目。

資料屬性值說明
data-activetrue, false錨點是否處於作用中狀態

範例

import { AnchorProvider, ScrollProvider, TOCItem, type TOCItemType } from 'fumadocs-core/toc';
import { type ReactNode, useRef } from 'react';

export function Page({ items, children }: { items: TOCItemType[]; children: ReactNode }) {
  const viewRef = useRef<HTMLDivElement>(null);

  return (
    <AnchorProvider toc={items}>
      <div ref={viewRef} className="overflow-auto">
        <ScrollProvider containerRef={viewRef}>
          {items.map((item) => (
            <TOCItem key={item.url} href={item.url}>
              {item.title}
            </TOCItem>
          ))}
        </ScrollProvider>
      </div>
      {children}
    </AnchorProvider>
  );
}

How is this guide?

最後更新於