忘れないように記録しとこ

カバの樹

Vue.jsでトーナメント表を実装する「vue-tournament-bracket」

vue-tournament-bracketとは

ココがポイント

  • Vue.js用のライブラリ
  • トーナメント表を実装
  • 3位決定戦みたいなものも実装可能

 

vue-tournament-bracketは、トーナメント表を実装することができるVue.js用コンポーネントライブラリです。

slotを使って、独自のタグを設定する事が可能です。
3位決定戦のような表記ができます。

 

 

環境

この記事は、以下の管理人の検証環境にて記事にしています。

vue.js 2.6.10
vue-tournament-bracket 2.1.2

検証ソースはこちら

 

ライブラリの取得

ライブラリを取得するには、npm, CDNのどれか一つを使用します。

npm

npm install vue-tournament-bracket

CDN

<script src="https://cdn.jsdelivr.net/npm/vue-tournament-bracket@2.1.2/dist/vue-tournament-bracket.umd.min.js"></script>

gitリポジトリは以下から取得できます。

 

導入手順

管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、トーナメント表を実装します。

 

step.1 ライブラリの呼び出し

まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。

ES6等で実装する場合

import Bracket from "vue-tournament-bracket";

UMDで実装する場合

const Bracket = window['vue-tournament-bracket'];

 

step.2 JavaScriptを設定


pagesという変数に、画像のパスを配列形式で設定します。

const rounds = [
  {
    games: [
      {
        id: 1,
        next: 3,
        player1: { id: "1", name: "Competitor 1", winner: false },
        player2: { id: "4", name: "Competitor 4", winner: true },
      },
      {
        id: 2,
        next: 3,
        player1: { id: "5", name: "Competitor 5", winner: false },
        player2: { id: "8", name: "Competitor 8", winner: true },
      }
    ]
  },
  {
    games: [
      {
        player1: { id: "4", name: "Competitor 4", winner: true },
        player2: { id: "8", name: "Competitor 8", winner: false },
      }
    ]
  }
];

new Vue({
  el: '#app',
  components: {
    bracket: Bracket
  },
  data: {
    rounds: rounds
  },
});

 

step.3 テンプレートを準備

<bracket> コンポーネントを設置し、roundsに上記で設定したroundsを設定します。

サンプルはケバブケースで記載しています。

<div id="app">
  <bracket :rounds="rounds">
    <template #player="{ player }">
      <span>{{ player.name }}</span>
    </template>
  </bracket>
</div>

サンプル

今回のソースを実際に触って確認できるようにデモを用意しました。

 

さいごに

トーナメント表を実装することができるコンポーネントライブラリでした。

今日はこの辺でー

 

  • B!