目次
vue-pollとは
vue-pollは、Twitterのような投票システムコンポーネントライブラリです。
投票をしなくても結果を確認したり、複数の投票を行う設定をすることも可能です。
【動画サイズ:29KB】
環境
この記事は、以下の管理人の検証環境にて記事にしています。
ライブラリの取得
ライブラリを取得するには、npm, CDNのどれか一つを使用します。
npm
npm install vue-poll
CDN
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-poll.min.js"></script>
gitリポジトリは以下から取得できます。
導入手順
管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、Twitterのような投票機能を実装します。
step
1ライブラリの呼び出し
まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。
ES6等で実装する場合
import VuePoll from 'vue-poll'
UMDで実装する場合
const VuePoll = window['VuePoll'].install;
step
2メソッドを設定
上記で取得したVuePollをVue.use
に取り込みます。
質問(question)と回答(answers)を設定するプロパティを用意します。
複数回答などのプロパティを設定する方法は以下のURLより確認してください。
回答が完了した時に発生するイベント(addVote)をmethodsで用意します。
Vue.use(VuePoll); new Vue({ el: '#app', data: { options: { question: 'あなたのお気に入りの <strong>JS</strong> フレームワークは何ですか?', answers: [ { value: 1, text: 'Vue', votes: 53 }, { value: 2, text: 'React', votes: 35 }, { value: 3, text: 'Angular', votes: 30 }, { value: 4, text: 'Other', votes: 10 } ] } }, methods: { addVote: function(obj){ console.log('You voted ' + obj.value + '!'); } } });
step
3テンプレートを準備
<vue-poll>
を配置します。
ライブラリのオプションをv-bind="options"
で設定します。
回答が完了した時に起きるイベントを@addvote="addVote"
で設定します。
サンプルはケバブケースで記載しています。
<div id="app"> <vue-poll v-bind="options" @addvote="addVote"></vue-poll> </div>
サンプル
今回のソースを実際に触って確認できるようにデモを用意しました。
See the Pen Vue.jsでTwitterのような投票システムを実装する「vue-poll」 by カバの樹 (@kabanoki) on CodePen.dark
さいごに
Twitterのような投票システムコンポーネントライブラリでした。
管理人が、新人歓迎会でこのvue-pollとfirebaseを組み合わせて、リアルタイム投票システムを作ったら、かなり盛り上がりました。
もし催しを控えているプログラマーさんとか居たら、試してみてはいかがでしょうか?
今日はこの辺でー