Visão geral da árvore React
Ignite UI for React Árvore, também conhecido como componente TreeView, é um controle de alto desempenho que visualiza estruturas de dados expansíveis em uma interface do usuário semelhante a uma árvore, permitindo que você aplique carga sob demanda para itens filho. A Árvore Ignite UI for React também fornece recursos como expansão e recolhimento de nós, navegação de aplicativos aninhados Ignite UI for React nós da Árvore podem ser gerados manualmente ou de uma fonte de dados vinculada.
Para os usuários finais, isso significa que eles podem navegar facilmente por diferentes páginas do aplicativo, usar seleção, caixas de seleção, adicionar textos, ícones, imagens e muito mais.
O componente Árvore Ignite UI for React permite que os usuários representem dados hierárquicos em uma estrutura de exibição de árvore, mantendo relacionamentos pai-filho, bem como definam a estrutura de exibição de árvore estática sem um modelo de dados correspondente. Seu objetivo principal é permitir que os usuários finais visualizem e naveguem dentro de estruturas de dados hierárquicas. O IgrTree
componente também fornece recursos de carga sob demanda, ativação de itens, seleção múltipla e em cascata de itens por meio de caixas de seleção integradas, navegação por teclado integrada e muito mais.
React Tree Example
Neste exemplo básico de árvore Ignite UI for React, você pode ver como definir uma árvore e seus itens especificando a hierarquia de itens.
How to Use Ignite UI for React Tree With Ignite UI
Primeiro, você precisa instalar o pacote npm Ignite UI for React correspondente executando o seguinte comando:
npm install igniteui-react
Você precisará importar o IgrTree
CSS necessário e registrar seu módulo, assim:
import { IgrTreeModule, IgrTree, IgrTreeItem } from 'igniteui-react';
import 'igniteui-webcomponents/themes/light/bootstrap.css';
IgrTreeModule.register();
A maneira mais simples de começar a usar o IgrTree
é a seguinte:
Declaring a tree
IgrTreeItem
é a representação de cada item que pertence ao IgrTree
. Os itens fornecem disabled
propriedades active
selected
e expanded
propriedades, que oferecem a oportunidade de configurar os estados do item de acordo com sua necessidade. A value
propriedade pode ser usada para adicionar uma referência à entrada de dados que o item representa.
Os itens podem ser vinculados a um modelo de dados para que seus estados expandidos e selecionados também sejam refletidos nos dados subjacentes.
- Declarando uma árvore criando itens estáticos não vinculados
Para renderizar uma árvore, você não precisa necessariamente de um conjunto de dados - itens individuais podem ser criados sem um modelo de dados subjacente usando a propriedade exposed label
ou fornecer um conteúdo de slot personalizado para o IgrTreeItem
rótulo.
<IgrTree>
<IgrTreeItem label='North America'>
<IgrTreeItem label='United States' />
<IgrTreeItem label='Canada' />
<IgrTreeItem label='Mexico' />
</IgrTreeItem>
<IgrTreeItem label='South America'>
<IgrTreeItem label='Brazil' />
<IgrTreeItem label='Uruguay' />
</IgrTreeItem>
<IgrTreeItem label='Europe'>
<IgrTreeItem label='United Kingdom' />
<IgrTreeItem label='Germany' />
<IgrTreeItem label='Bulgaria' />
</IgrTreeItem>
</IgrTree>
[!Note] You can provide a custom slot content for each
IgrTreeItem
's indentation, expansion and label area respectively using the providedindentation
,indicator
andlabel
slots.
Item Interactions
IgrTreeItem
pode ser expandido ou recolhido:
- clicando no indicador de expansão do item (comportamento padrão).
- clicando no item se o
IgrTree
toggleNodeOnClick
property é definida comotrue
.
Por padrão, vários itens podem ser expandidos ao mesmo tempo. Para alterar esse comportamento e permitir a expansão de apenas uma ramificação por vez, a propriedade singleBranchExpand
pode ser habilitada. Dessa forma, quando um item é expandido, todas as outras ramificações já expandidas no mesmo nível serão recolhidas.
React Tree Selection
Para configurar a seleção de itens no componente Árvore Ignite UI for React, você só precisa definir sua selection
propriedade. Essa propriedade aceita os três modos a seguir: Nenhum, Múltiplo e Cascata. Abaixo, veremos cada um deles com mais detalhes.
None
Por padrão, a seleção de IgrTree
itens está desativada. Os usuários não podem selecionar ou desmarcar um item por meio da interação da interface do usuário, mas essas ações ainda podem ser concluídas por meio do método de API fornecido.
Multiple
Para habilitar a seleção de vários itens, IgrTree
basta definir a selection
propriedade como múltipla. Isso renderizará uma caixa de seleção para cada item. Cada item tem dois estados - selecionado ou não. Este modo suporta seleção múltipla.
<IgrTree selection="multiple" />
Cascade
Para habilitar a IgrTree
seleção de itens em cascata, basta definir a propriedade de seleção como cascata. Isso renderizará uma caixa de seleção para cada item.
<IgrTree selection="cascade" />
Nesse modo, o estado de seleção de um pai depende inteiramente do estado de seleção de seus filhos. Quando um pai tem alguns filhos selecionados e alguns desmarcados, sua caixa de seleção está em um estado indeterminado.
Keyboard Navigation
A navegação pelo teclado fornece IgrTree
uma grande variedade de interações de teclado para o usuário. Essa funcionalidade é habilitada por padrão e permite que os usuários naveguem pelos itens.
A IgrTree
navegação é compatível com os padrões de acessibilidade do W3C e conveniente de usar.
Combinações de teclas
- ↓- navega para o próximo item visível. Marca o item como ativo. Não faz nada se estiver no ÚLTIMO item.
- Ctrl + ↓- navega para o próximo item visível. Não faz nada se estiver no ÚLTIMO item.
- ↑- navega para o item visível anterior. Marca o item como ativo. Não faz nada se estiver no PRIMEIRO item.
- Ctrl + ↑- navega para o item visível anterior. Não faz nada se estiver no PRIMEIRO item.
- ←- em um item pai expandido, o recolhe. Se o item estiver recolhido ou não tiver filhos, move para seu item pai. Não faz nada se não houver um item pai.
- →- em um item pai expandido, navega para o primeiro filho do item. Se em um item pai recolhido, expande-o. Não faz nada se o item não tiver filhos.
- Início- navega para o PRIMEIRO item.
- Fim- navega até o ÚLTIMO item visível.
- Tab- navega para o próximo elemento focalizável na página, fora da árvore.
- Shift + Tab- navega para o elemento focalizável anterior na página, fora da árvore.
- Espaço- alterna a seleção do item atual. Marca o nó como ativo.
- Shift + Espaço- alterna a seleção de todos os itens entre o ativo e o pressionado. Espaço enquanto segura Shift se a seleção estiver habilitada.
- Enter- ativa o item em foco. Se o item tiver um link, abre o link.
- *- expande o item e todos os itens irmãos no mesmo nível.
Quando a seleção está habilitada, a seleção de itens pelo usuário final só é permitida por meio da caixa de seleção renderizada. Como ambos os tipos de seleção permitem seleção múltipla, as seguintes interações de mouse e teclado estão disponíveis:
- Clique- quando executado na caixa de seleção do item, alterna a seleção do item se a seleção estiver habilitada. Caso contrário, foca o item
- Shift + Clique- quando executado na caixa de seleção do item, alterna a seleção de todos os itens entre o ativo e o clicado enquanto mantém Shift pressionado se a seleção estiver habilitada
Styling
Você pode alterar a aparência do IgrTreeItem
, usando algumas das partes CSS expostas listadas abaixo:
Nome da peça | Descrição |
---|---|
wrapper |
O invólucro para o item da árvore. |
selected |
Indica o estado selecionado. Aplica-se awrapper . |
focused |
Indica estado focado. Aplica-se awrapper . |
active |
Indica um estado ativo. Aplica-se awrapper . |
indicator |
O indicador de expansão do item da árvore. |
label |
O conteúdo do item da árvore. |
text |
O item da árvore exibia texto. |
select |
A caixa de seleção do item da árvore quando a seleção está habilitada. |
Usando essas partes CSS, podemos personalizar a IgrTree
aparência do componente assim:
igc-tree-item::part(active) {
background: var(--ig-secondary-500);
color: var(--ig-secondary-500-contrast);
}