Vue.jsのテンプレート構文について その3
その1はこちら
その2はこちら
Vue.jsでHTMLを描画する際に用いるテンプレートの構文について学んだことをまとめています。
まだ勉強を始めたばかりなため理解が追いついていない部分があるかと思います。間違った解釈をしているものなどあればお教えいただけると嬉しいです。
ディレクティブを学ぶ
ディレクティブとは
Vue.jsにおいてv-から始まる特別な属性。
全て先頭にv-
をつける。
v-text
、v-bind
、v-html
など様々なものが用意されている。
v-on
v-on
ディレクティブを使うことで、DOM イベントの購読、イベント発火時の JavaScript の実行が可能になります。
イベント発生時に関数を実行できる。
イベントの名前を引数にとる
例:click
省略記法は
@
(例:@click="ok"
)
v-onディレクティブでメソッドを使用する
メソッド:関数をたくさん保持できる
v-onイベントオブジェクトを使用する
メソッドの引数にevent
を指定することでマウスイベントを取得できる。(※event
でなく他の単語などでも動作はするが、event
を指定することが慣例となっているため基本的にevent
を使用する)
カーソルの位置を検知して、X軸とY軸の位置を表示する
console.log(event)
で内容を確認できるが、jsFiddleにおいてうまく作動しなかったためコードに記述していません。Vue CLIを使用して試したところ以下のgifのようにevent
の内容が確認できます。
指定範囲内でマウスを動かすとその度に位置を検知しているのがわかると思います。clientX
、clientY
が画面上の位置を記しています。
これはこの位置に来たら要素を追加したり、など応用が利きそうですね。
イベントオブジェクトでの引数
v-on
の引数には$event
を使用する
v-onの引数DOMイベント一覧
イベント修飾子
よく使うDOMイベントはVue.js側がすでに用意している。
以下の6つがある。この中でもよく使用される.stop
と.prevent
について記しておく。
.stop
.prevent
.capture
.self
.once
.passive
.stop
JavascriptのstopPropagation
メソッドを呼び出せる。
親要素へのバブリングを無効にする。
v-on
ディレクティブの引数に続けて.stop
と記述する。
例:v-on:mousemove.stop
、@mousemove.prevent
.prevent
Javascriptのevent.preventDefault
メソッドを呼び出せる。
要素のデフォルトの動作を無効にする。
v-on
ディレクティブの引数に続けて.prevent
と記述する。
例:v-on:click.prevent
、@click.prevent