Как настроить древовидное меню, чтобы при клике на пункт меню раскрывалось дерево?

Как настроить раскрытие вложенных пунктов при нажатии на пункт меню в PrimeVue?
  • 12 марта 2024 г. 15:19
Ответы на вопрос 2
Для настройки древовидного меню с раскрытием дерева при клике на пункт меню в PrimeVue, можно использовать компонент Treeview. Вот пример кода:

```html
<template>
  <Treeview :value="nodes" selection-mode="single" @node-click="handleNodeClick"/>
</template>

<script>
export default {
  data() {
    return {
      nodes: [
        {
          label: 'Node 1',
          children: [
            { label: 'Node 1.1' },
            { label: 'Node 1.2' },
          ]
        },
        { label: 'Node 2' },
        { label: 'Node 3' }
      ]
    };
  },
  methods: {
    handleNodeClick(node) {
      if (node.children) {
        node.expanded = !node.expanded;
      }
    }
  }
};
</script>
```

В этом примере компонент Treeview принимает массив nodes, который содержит список узлов дерева. При клике на узел в методе handleNodeClick проверяется наличие дочерних узлов и изменяется свойство expanded, чтобы раскрыть или скрыть их.

Таким образом, при клике на пункт меню с дочерними элементами дерева, они будут раскрываться или скрываться в зависимости от текущего состояния.

Надеюсь, это поможет вам настроить древовидное меню с раскрытием дерева при клике на пункт меню в PrimeVue.
На клик по пункту дерева по дефолту вызывает событие выбора этого пункта. Тебе надо переопределить событие @nodeSelect и в нем самому проверять есть ли у этого пункта потомки и в зависимости от этого делать разворачивание или выделение. 

https://primevue.org/tree/#events
Похожие вопросы