【Vuetify】【v-calendar】カレンダーにイベントを表示する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、Vuetifyのカレンダーにイベントを表示する方法をご紹介しています。
Vuetifyでカレンダーにイベントを表示したいんだけど、どうすればいいんだろう?
上記の疑問にお答えします。
本記事では、下記バージョンのVue.jsとVuetifyを使用しています。動作しない場合はバージョンをご確認ください。- Vue.js:v2.6.14
- Vuetify:v2.5.9
では、解説していきます。
カレンダーにイベントを簡単に表示する
Vuetifyのカレンダーにイベントを表示するには、配列にイベントの情報を指定して出力します。動作確認も兼ねて、最低限必要な情報を配列に指定し、カレンダーにイベントを表示してみます。
最低限指定するキーと値は下記の通りです。
キー | 値 |
---|---|
name | イベント名を指定します。 |
start | イベント開始日時を指定します。 |
end | イベント終了日時を指定します。 |
上記の内容で作成した配列をHTML側の:evetns
に渡すと、カレンダー上にイベントが表示されます。日付だけのパターン、日付+時間のパターンでカレンダーにイベントを表示してみます。
HTML
<div id="app"> <v-app> <v-calendar locale="ja-jp" :events="events" ></v-calendar> </v-app> </div>
JavaScript
new Vue({ el: '#app', vuetify: new Vuetify(), data(){ return { events: [ { name: '月次報告', start: '2021-10-01 09:00', end: '2021-10-01 17:00', }, { name: '出張', start: '2021-10-11', end: '2021-10-15', } ], } }, })
実行結果
See the Pen Untitled by ryohei (@intotheprogram) on CodePen.
実行結果を確認すると、events
の配列に指定した内容がカレンダーに表示されていますね。name
やend
は省略することも可能です。省略した場合の表示につきましては、上記デモ右上の「EDIT ON CodePen」からご確認いただければと思います。
イベントの色を変更する
Vuetifyのv-calendar
のイベント表示は細かいカスタマイズが可能です。その中でもよく使用する色の変更方法についてご紹介します。他のプロパティも同様の方法で設定できますので、参考にしていただければ思います。
全イベントに同色を指定する
カレンダー内のすべてのイベントに同じ色を適用します。下記を指定すると、全イベントの背景色が黄色になって表示されます。
HTML
<div id="app"> <v-app> <v-calendar locale="ja-jp" :events="events" event-color="yellow" ></v-calendar> </v-app> </div>
メソッドでイベントの色を指定する
メソッドでイベントの色を指定します。下記例ではcolor
の値がイベントの背景となります。
HTML
<div id="app"> <v-app> <v-calendar locale="ja-jp" :events="events" :event-color="getEventColor" ></v-calendar> </v-app> </div>
JavaScript
new Vue({ el: '#app', vuetify: new Vuetify(), data(){ return { color: 'yellow', events: [ { name: '月次報告', start: '2021-10-01 09:00', end: '2021-10-01 17:00', }, { name: '出張', start: '2021-10-11', end: '2021-10-15', } ], } }, methods: { getEventColor(){ return this.color }, } })
配列でイベントの色を指定する
配列に追加する形で、イベントの色を指定します。各配列にcolor
と色を指定することで、カレンダーに反映されます。
HTML
<div id="app"> <v-app> <v-calendar locale="ja-jp" :events="events" ></v-calendar> </v-app> </div>
JavaScript
new Vue({ el: '#app', vuetify: new Vuetify(), data(){ return { color: 'yellow', events: [ { name: '月次報告', start: '2021-10-01 09:00', end: '2021-10-01 17:00', color: 'purple' }, { name: '出張', start: '2021-10-11', end: '2021-10-15', color: 'yellow' } ], } }, })
下記は配列で色を指定した場合の実行結果です。各イベントに設定した色が反映されています。
See the Pen Untitled by ryohei (@intotheprogram) on CodePen.
他にもたくさんのプロパティがありますので、下記を参考に色々設定してみてくださいね。
最後に
前回のカレンダーを日本語で表示する方法に続いて、イベントの表示方法についてのご紹介となりました。カレンダーの表示についてはもっとカスタマイズができそうなので、検証しつつ投稿にまとめて共有していきたいと思います。
以上、Vuetifyでカレンダーにイベントを表示する方法のご紹介でした!