0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Vue.js】.prevent .stopが効いてないと思ったら勘違いだった

Posted at

Vue.jsを勉強中、イベント修飾子について、テストしていたら、詰まったのでメモします。
かなり初歩的なことですが、気づけず時間をかけてしまったので....(ᓀ‸ᓂ)バニ....

1.間違っていたコード

App.vue
<h1> {{ price }}</h1>
<div>
  <button @click.stop.prevent="increment()">増やす</button>
</div>

increment()でpriceの数が加算される仕組みにしています。
clickイベントに.stopをつけて起動しないようにしているのですが、なぜか起動してしまいました。

2.修正したコード

App.vue
<h1> {{ price }}</h1>
<div @click="increment()">
  <button @click.stop.prevent="">増やす</button>
</div>
</div>

これで動かなくなりました!!

3.なぜこのようなことが起きたのか?

個人的に引っかかったので図にしてまとめてみました。
慣れている人はともかく、一度勘違いしてしまうとはまっちゃいそうですね...笑

unnamed.png

子のbuttonに書かれているclickが無事起動したら、親のclickが起動する仕組みになっているようです。

【実行順序】
子要素のイベント
  ↓
親要素のイベント(子が起動しなければ起動しない。)

①のclickには、stopの例外処理のようなもと認識していて、基本機能はストップさせたいけど、ストップさせた後、この処理だけはやってほしいといったときに使うようです...!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?