- 基本的にVueではモーダルメニューなどはdataの値で表示・非表示を切り替える
<template>
<div>
<!-- メニュー表示ボタン -->
<button type="button"
:class="{ open: isShowMenu }"
@click.stop="isShowMenu = !isShowMenu">
メニュー
</button>
<div v-show="isShowMenu">
<!-- メニュー内容 -->
</div>
</div>
</template>
<script>
export default {
data() {
return {
isShowMenu: false
};
},
}
</script>
ここでルータで画面遷移を行なった際にメニューが表示されたままになるという問題発生
watchで解決する
- 下記のように
watch
オプションを記載してあげると毎回画面遷移の度にメニューを閉じることができる
watch: {
'$route' () {
this.isShowMenu = false;
}
}