Tree

Treeは、階層データを展開可能なツリー形式で表示するコンポーネントです。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

使い方

import { Tree } from "@yamada-ui/react"
<Tree.Root>
  <Tree.Item>
    <Tree.Item />
  </Tree.Item>
  <Tree.Item />
</Tree.Root>

itemsを使う

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

バリアントを変更する

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

サイズを変更する

  • src
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • src
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • src
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

形を変更する

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

特定の項目を展開済みにする

最初から特定の項目を展開済みにする場合は、defaultExpandedValueに項目の値を設定します。

  • src
    • components
      • tree.tsx
      • index.ts
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

特定の項目を選択済みにする

特定の項目を選択済みにする場合は、defaultSelectedValueに項目の値を設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

複数の項目を選択する

複数の項目を選択する場合は、multipletrueに設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

チェックボックスを有効にする

項目にチェックボックスを有効にする場合は、checkabletrueに設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

特定の項目をチェック済みにする

特定の項目をチェック済みにする場合は、defaultCheckedValueに項目の値を設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

項目を無効にする

項目を無効にする場合は、disabledを設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

ガイドラインを表示する

ガイドラインを表示する場合は、withGuideLinetrueに設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

インジケーターを非表示にする

インジケーターを非表示にする場合は、indicatorHiddentrueに設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

アニメーションを追加する

展開・折りたたみ時にアニメーションを追加する場合は、animatedtrueに設定します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

フィルタリング

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

非同期で読み込む

項目の子要素を非同期で読み込む場合は、childrenの代わりにasyncChildrenを使用します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

ローディングスキームを変更する

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

項目をすべて展開・折りたたむ

項目をすべて展開または折りたたむ場合は、controlRefを使用します。

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

要素をカスタマイズする

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

インジケーターをカスタマイズする

  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

制御する

  • node_modules
    • react
    • react-dom
  • pnpm-lock.yaml
  • package.json
  • tsconfig.json
  • README.md

Props

アクセシビリティ

Treeは、アクセシビリティに関してWAI-ARIA - TreeView Patternに従います。

aria-labelを設定すると、スクリーンリーダーによって読み上げられます。

<Tree.Root aria-label="My Documents" />

キーボード操作

キー説明状態
Tab選択されている項目または最初の項目にフォーカスします。-
ArrowUp無効ではない前の項目をフォーカスします。-
Shift + ArrowUp無効ではない前の項目をフォーカスし、その項目を選択します。multiple={true}
Control + Shift + ArrowUpすべての項目を折りたたみます。-
ArrowDown無効ではない次の項目をフォーカスします。-
Shift + ArrowDown無効ではない次の項目をフォーカスし、その項目を選択します。multiple={true}
Control + Shift + ArrowDownすべての項目を展開します。-
ArrowRightフォーカスしている項目が折りたたまれている場合は展開します。展開されている場合は最初の子項目をフォーカスします。-
ArrowLeftフォーカスしている項目が展開されている場合は折りたたみます。折りたたまれている場合は親項目をフォーカスします。-
Space, Enterフォーカスしている項目を選択します。グループの場合は展開・折りたたみを切り替えます。-
Shift + Space, Enter最初に選択した項目からフォーカスしている項目までの項目をすべて選択します。multiple={true}
Home無効ではない最初の項目をフォーカスします。-
End無効ではない最後の項目をフォーカスします。-
Control + A無効ではないすべての項目を選択します。multiple={true}
a-z, A-Z入力した文字から始まる値の展開されている項目をフォーカスします。-

ARIAロールと属性

コンポーネントロールと属性使い方
Tree.Rootrole="tree"ツリーであることを示します。
aria-multiselectablemultiple={true}またはcheckable={true}が設定されている場合は"true"を設定します。
Tree.Itemrole="treeitem"ツリーの項目であることを示します。
aria-expanded項目が展開されている場合は"true"を設定し、折りたたまれている場合は"false"を設定します。
aria-selected項目が選択されている場合は"true"を設定します。
aria-disabled項目が無効な場合は"true"を設定します。
aria-level項目の階層を設定します。
aria-labelledby関連したTree.Item > div > spanidを設定します。
Tree.Item > ulrole="group"グループであることを示します。
aria-labelledby関連したTree.Item > div > spanidを設定します。
aria-busy項目が読み込み中の場合は"true"を設定します。
Tree.Item > div > inputid親のTree.Item > div > inputと関連付けするために使用するid
aria-controls関連した子のTree.Item > div > inputidを設定します。
aria-labelledby関連したTree.Item > div > spanidを設定します。
Tree.Item > div > spanidTree.ItemTree.Item > ulTree.Item > div > inputを関連付けするために使用するid

類似のコンポーネント

DataList

DataListは、データ項目のリストを表示するために使用されます。

List

Listは、リストを表示するコンポーネントです。デフォルトでは、ul要素をレンダリングします。

NativeAccordion

NativeAccordionは、HTMLのdetails要素を使用して情報を展開または折りたたんで表示するリストのコンポーネントです。

Accordion

Accordionは、情報を展開または折りたたんで表示するリストのコンポーネントです。

Timeline

Timelineは、イベントのリストを時系列に表示するために使用されるコンポーネントです。

Tabs

Tabsは、異なる表示領域を切り替えるコンポーネントです。

NativeTable

NativeTableは、データを効率的に整理して表示するコンポーネントです。

Sidebar

Sidebarは、サイドバーにアイテムのリストを表示するコンポーネントです。

使用しているコンポーネント・フック