静的サイト作成していて、よく使うロジックの一つに タブセレクト があります。
ボタンをクリックすると特定の範囲の内容が切り替わるものです。
<template>
<section>
<div id="tabs" class="tabContainer">
<div class="tabButtons">
<a v-on:click="activetab=1" v-bind:class="[ activetab === 1 ? 'active' : '' ]">タブ01</a>
<a v-on:click="activetab=2" v-bind:class="[ activetab === 2 ? 'active' : '' ]">タブ02</a>
<a v-on:click="activetab=3" v-bind:class="[ activetab === 3 ? 'active' : '' ]">タブ03</a>
</div>
<div class="tabContents">
<div v-show="activetab === 1" class="content cont01">
コンテンツ01
</div>
<div v-show="activetab === 2" class="content cont02">
コンテンツ02
</div>
<div v-show="activetab === 3" class="content cont03">
コンテンツ03
</div>
</div>
</div>
</section>
</template>
<script>
export default {
data(){
return {
activetab: 1
}
}
}
</script>
ボタンには v-on:click で activetabという変数の値を切り替えるようにしていて、クラスの追加、コンテンツの表示は activetabの値に応じて動作をつけているという構造になっています。
この考え方は基本的でさらに応用が幅広のように感じますね。