Вы можете использовать шину событий.
Создать файл js (может быть EventBusLayout.js
) со следующим кодом:
import Vue from 'vue';
export let EventBusLayout = new Vue();
Затем в компоненте макета / боковой панели :
<script>
import { EventBusLayout } from './EventBusLayout.js';
export default {
methods: {
sidebarClick() {
EventBusLayout.$emit('sidebarclick');
}
}
}
</script>
А на вашей странице компонент:
<script>
import { EventBusLayout } from './EventBusLayout.js';
export default {
beforeMount() {
EventBusLayout.$on('sidebarclick',this.myCallbackFunction);
},
beforeDestroy() {
EventBusLayout.$off('sidebarclick',this.myCallbackFunction);
}
methods: {
myCallbackFunction() {
/* do here your stuffs */
}
}
}
</script>