Dados
Tree
Dados hierárquicos com ramos que abrem e fecham, seleção por clique ou checkbox, um filtro e filhos carregados sob demanda.
Testado com WAI-ARIA
Importação
main.ts
import { Tree } from '@vitral/vue';Seleção única, conteúdo personalizado
O slot padrão desenha cada nó: aqui, o tamanho ao lado do nome.
- Pictures
- Music
- Notes.md4 KB
Checkboxes
Marcar um ramo marca tudo abaixo dele; um ramo com só alguns dos filhos marcados fica misto (aria-checked="mixed"). Ísland está desabilitada.
Filtro
As correspondências ficam, com os ramos que levam a elas abertos. “evora” encontra Évora.
- Americas
- Europe
Filhos sob demanda
Cada região é um ramo (`leaf: false`) ainda sem filhos; abri-lo emite `node-expand`, e a aplicação os carrega.
- eu-west-1 (Dublin)
- sa-east-1 (São Paulo)
- ap-northeast-1 (Tōkyō)
API
Lido de packages/vue/src/components/Tree/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| value | TreeNodeLike[] | — |
| selectionMode | 'single' | 'multiple' | 'checkbox' | — |
| filter | boolean | Adiciona uma caixa de busca; os resultados ficam visíveis com os ramos que levam a eles, expandidos. |
| filterBy | string | string[] | Campos do nó a buscar, como lista ou separados por vírgula. O padrão é `label`. |
| filterPlaceholder | string | — |
| loading | boolean | — |
| scrollHeight | string | A altura máxima da árvore antes de rolar. |
| emptyMessage | string | — |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| node-expand | node: TreeNodeLike | — |
| node-collapse | node: TreeNodeLike | — |
| node-select | node: TreeNodeLike | — |
| node-unselect | node: TreeNodeLike | — |
| filter | query: string | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| default | (props: TreeNodeSlotProps) | O conteúdo de um nó, no lugar do seu rótulo. |
| togglericon | (props: { node: TreeNodeLike; expanded: boolean }) | — |
| empty | — | — |