DDS/Components/TreeView

TreeView

Display

Interactive hierarchical tree with expand/collapse and selection.

Props

PropTypeDefaultDescription
nodesDsTreeNode[][]Nodes { id, label, children?, disabled? }. Recursive.
selectedstringundefinedID of the selected node.

Examples

File tree
  • package.json
vue
<script setup>
const nodes = [
  {
    id: 'src',
    label: 'src',
    children: [
      {
        id: 'components',
        label: 'components',
        children: [
          { id: 'button', label: 'DsButton.vue' },
          { id: 'input', label: 'DsInput.vue' },
        ],
      },
      { id: 'utils', label: 'utils', children: [
        { id: 'cn', label: 'cn.ts' },
      ]},
    ],
  },
  { id: 'package', label: 'package.json' },
]
const selected = ref('button')
</script>
<template>
  <DsTreeView :nodes="nodes" :selected="selected" @select="selected = $event" />
</template>

Skeleton

Use DsTreeViewSkeleton as a loading placeholder while content is being fetched.

Default
vue
<DsTreeViewSkeleton />

Accessibility

  • role="tree" on the container, role="treeitem" on each node.
  • aria-expanded reflects the expand/collapse state of folders.