Toggle клик SideBar

У меня есть 3 компонента: Header, SideBar, Talbe. Все они рендерятся на App.vue. Как при клике в кнопке Header показать SideBar (toggle click).


Ответы (2 шт):

Автор решения: Azamat Ali

Через Emit + Listener. В Header.vue

@click="emit..."

В App.vue добавить Listener, который бы вызывал метод sibebarIsVisible, это просто моё название метода.

Затем,

<SideBar v-if="sidebarIsVisible"></SideBar>
→ Ссылка
Автор решения: fortavey

Наверное ответ уже не актуален, но напишу, может потом кому то будет полезно.

  1. Создаем в App.vue свойство showSidebar: false, которое будет отвечать за показ компонента SideBar

  2. Задаем компоненте SideBar показ в зависимости от свойства showSidebar:

    <SideBar v-if="showSidebar"/>
    
  3. В компоненте Header вешаем событие на кнопку

    <button @click="onClick">Click</button>
    
  4. Это событие эмитит событие onClick родителю:

    onClick() {
      this.$emit('onClick');
    }
    
  5. В App.vue на компоненте Header принимаем событие из компоненты и изменяем свойство showSidebar:

    <Header @onClick="showSidebar = !showSidebar"/>
    

Готово.

→ Ссылка