前回の記事はこちら↓
今回やりたい事
「ボタンをクリックしたら、表示するテキストを変更する。」を実装します。
前回作成したコードにイベントを追加していきます。
前回のコードはこちら↓
<body>
<!-- Vueのインストール -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="hello">
<p>{{message}}</p>
</div>
<!-- ここからVueを記述 -->
<script>
new Vue({
el:'#hello',
data:{
message:'Hello World!'
}
})
</script>
</body>
</html>
HTMLにボタンを追加
前回のコードにbuttonを追加します。
<div id="hello">
<p>{{message}}</p>
<button>メッセージを変更</button>
</div>
buttonタグにv-onを使ってイベント発火時の呼び出しJSメソッドを定義します。
【v-onについて】公式ページはこちら
※公式ページにも記載されていますが、v-onの中にJSを記載する事は非推奨であるといっています。イベント実装は、メソッド内にまとめることが望ましいです。
JSのメソッド名はchangeMessageにしたいと思います。
<button v-on:click="changeMessage">メッセージを変更</button>
JSにMethodを追加する
buttonがクリックされた時に呼び出されるメソッドをJSに追記します。
追記する事
1.変更後のメッセージをdataに追加(5行目)
2.methodsの追加(7行~11行目)
new Vue({
el: '#hello',
data: {
message: 'Hello World!',
goodbye: 'GoodBye!'
},
methods: {
changeMessage: function () {
this.message = this.goodbye
}
}
})
コード内のthisは、Vueインスタンスを指しています。
this.messageであれば、vueインスタンスの中のdata.message
this.goodbyeであれば、vueインスタンスの中のdata.message
となります。
以上でクリックしたら文字列が変更されるが実装できました。


