У меня была похожая проблема, и вот мои 2 цента .
С подставки UX не очень хорошее решение переключить боковую панель "на ссылку / элемент боковой панели.".
Даже если боковая панель открыта, и вы закрываете ее, нажимая на ссылку, которая указывает на текущий путь, как бы вы снова открыли боковую панель?
Начиная сВ моей ситуации я использую ту же логику в моем router.js
:
router.beforeEach((to, from, next) => {
store.commit('toggleSidebar', true)
//other logic
})
И в моем Sidebar.vue
компоненте у меня есть только вычисленный метод для извлечения текущего значения toggleSidebar
:
<template>
<aside :class="{close: getSidebar}">
<!-- other markup -->
</aside>
</template>
...
computed: {
getSidebar() {
return this.$store.state.isSidebarClosed
}
}
А теперь, чтобы переключить боковую панель, у меня есть Navigation.vue
компоненты (заголовок), у которых есть кнопка для этого:
<button type="button" @click="toggleSidebar">
<span v-if="sidebarStatus" class="hamburger-icon"></span>
<span v-else class="close-icon"></span>
</button>
...
methods: {
toggleSidebar() {
this.$store.commit('toggleSidebar', !this.$store.state.isSidebarClosed)
}
},
computed: {
sidebarStatus() {
return this.$store.state.isSidebarClosed
}
}
Надеюсь, это поможет.