フロントエンド開発では、ユーザーと頻繁に対話する必要があります。このとき、クリック、ドラッグ、キーボード イベントなどのユーザー イベントを監視する必要があります。Vue でイベントを監視するにはどうすればよいですか? v-on
ディレクティブを使用します。次の記事では、Vue のイベント監視コマンド v-on について説明します。
vue ビデオ チュートリアル)
v2.4.0 以降、v-on はパラメーター オブジェクトなしでイベント/リスナーのキーと値のペアをバインドすることもサポートします。 。オブジェクト構文を使用する場合、修飾子はサポートされないことに注意してください。
<!-- Template --> <div id="app"> <h1 v-on:click="clickMe">点击我</h1> </div> // JavaScript var app = new Vue({ el: '#app', methods: { clickMe: function() { alert("点击我,我就出来了!(^_^)") } }, data: { } })
v-on を実行し、
click イベント (
v-on:click) をバインドし、この
click イベントをバインドします。 イベント
clickMe がトリガーされました。この
clickMe は Vue では通常、
methods: {} に配置します。つまり、
clickMe 関数は
methods# に記述されます。 # #真ん中。
を参照してください。これは、HTML の on Clock="clickMe"
とよく似ていますか?見た目から判断すると、書き方は違いますが、結果は同じです。 Vue では、v-on:click
の代わりに @click
を使用することもできます。その後、彼らは同じ役割を果たします。 Vue では、上記の例以外にも、
の次の使用方法があります。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false"><!-- 方法处理器 -->
<button v-on:click="clickMe"></button>
<!-- 对象语法 (v2.4.0版本以上才支持) -->
<button v-on="{ mousedown: doThis, mouseup: doThat}"></button>
<!-- 内联语句 -->
<button v-on:click="doThat(&#39;Hello&#39;, $event)"></button>
<!-- 缩写 -->
<button @click="doThis"></button>
<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>
<!-- 阻止默认行为 -->
<button @click.prevent="doThis"></button>
<!-- 阻止默认行为, 没有表达式 -->
<form @submit.prevent></form>
<!-- 串联修饰符 -->
<button @click.stop.prevent="doThis"></button>
<!-- 键修饰符, 键别名 -->
<input @keyup.13="onEnter" />
<!-- 点击回调只会触发一次 -->
<button v-on:click.once="doThis"></button></pre><div class="contentsignin">ログイン後にコピー</div></div>
on サブコンポーネント カスタム イベント (イベントサブコンポーネントがトリガーするときにハンドラーが呼び出されます
): <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false"><my-component @my-event="handleThis"></my-component>
<!-- 内联语句 -->
<my-component @my-event="handleThis(123, $event)"></my-component>
<!-- 组件中的原生事件 -->
<my-component @click.native="onClick"></my-component></pre><div class="contentsignin">ログイン後にコピー</div></div>
上記の簡単な例から、Vue がイベント処理のプロセスにあることがわかります。それにはいくつかの修飾子が付いています。
:event.stopPropagation()を呼び出す
:イベントを呼び出す.preventDefault()
: イベント リスナーを追加するときにキャプチャ モードを使用します
: コールバックは、リスナーがバインドされている要素自体からイベントがトリガーされた場合にのみトリガーされます。
:特定のキーからイベントがトリガーされた場合のみコールバック
## のネイティブ イベントをリッスンします。
モードでリスナーを追加します (v2.3.0 でのみ利用可能)Vue の公式 Web サイトがイベントとカスタマイズを処理しますコンポーネントのイベントについて詳しく説明します。ご興味がございましたら、対応するコンテンツをご覧ください:
#イベント ハンドラー
をクリックし、数値を減らすには
- をクリックします。
Vue では、テンプレートには 3 つの要素、2 つのボタン、および数値を表示するコンテナーが含まれています。最初のボタンは加算計算を実行し、2 番目のボタンは減算カウントを実行します。簡単な構造は次のとおりです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false"><div id="app">
<button v-on:click="increase">+</button>
<span>{{ count }}</span>
<button v-on:click="reduce">-</button>
</div></pre><div class="contentsignin">ログイン後にコピー</div></div><p>两个按钮上都绑定了一个<code>click
事件,点击按钮分别触发increase
和reduce
两个函数,前者做加法,后者做减法。另外一个元素中我们有一个值{{ count }}
。每次点击按钮这个{{ count }}
都会做相应的变化。
模板有了之后,需要添加对应的功能。
let app = new Vue({ el: '#app', methods: { increase: function() { this.count++ }, reduce: function() { this.count-- } }, data: { count: 0 } })
在Vue中,我们在methods
中声明了两个函数,分别是increase
(加法)和reduce
(减法)。另外需要在数据源中声明count
。
演示demo地址:https://codepen.io/airen/pen/PJbKNg
对于这么简单的效果,我们也可以直接在v-on中处理完:
<button v-on:click="count += 1">+</button>
比如我们前面的示例,修改下:
<button v-on:click="count += 1">+</button> {{ count }}// JavaScript let app = new Vue({ el: '#app', data: { count: 0 } })
效果一样:
演示demo地址:https://codepen.io/airen/pen/veyeLY
以上がVue のイベント監視命令 v-on について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。