生涯現役

独学でやっと掴んだエンジニアへの道筋をなくしたくはない。だから毎日勉強!!

【NUXT.js】タブセレクト

【NUXT.js】タブセレクト

静的サイト作成していて、よく使うロジックの一つに タブセレクト があります。
ボタンをクリックすると特定の範囲の内容が切り替わるものです。

<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の値に応じて動作をつけているという構造になっています。

この考え方は基本的でさらに応用が幅広のように感じますね。

【sample】
https://markupnet.jp/portfolio/nuxt-basic/App02

webmaster

コメントは受け付けていません。