首頁 > web前端 > js教程 > 主體

Vue.js中v-on事件使用詳解

php中世界最好的语言
發布: 2018-04-14 15:55:00
原創
2542 人瀏覽過

這次帶給大家Vue.js中v-on事件使用詳解,Vue.js中v-on事件使用的注意事項有哪些,下面就是實戰案例,一起來看一下。

每個 Vue 實例都實作了事件介面(Events interface),即:

使用 $on(eventName) 監聽事件

# 使用 $emit(eventName) 觸發事件

Vue的事件系統分離自瀏覽器的EventTarget API。儘管它們的運作類似,但$on 和 $emit 不是addEventListener 和 dispatchEvent 的別名。

另外,父元件可以在使用子元件的地方直接用 v-on 來監聽子元件觸發的事件。

下面是一個文檔上面的範例:

2017年4月11日更新

<p id="counter-event-example">
 <p>{{ total }}</p>
 <button-counter v-on:increment="incrementTotal"></button-counter>
 <button-counter v-on:increment="incrementTotal"></button-counter>
</p>
Vue.component('button-counter', {
 template: '<button v-on:click="increment">{{ counter }}</button>',
 data: function () {
  return {
   counter: 0
  }
 },
 methods: {
  increment: function () {
   this.counter += 1
   this.$emit('increment')
  }
 },
})
new Vue({
 el: '#counter-event-example',
 data: {
  total: 0
 },
 methods: {
  incrementTotal: function () {
   this.total += 1
  }
 }
})
登入後複製

步驟1:

大家先看到這裡,其實在步驟4裡面的自訂標籤經過渲染之後是變成瞭如 步驟一 一樣的程式碼,所以我們應該從這裡開始理解父子元件間事件綁定。在子元件裡面把點擊事件(click)綁定給了函數increment(即圖片裡面的步驟2),這裡很容易理解,即點擊了子元件的按鈕將會觸發位於子元件的increment函數

步驟2與步驟3:

increment函數被觸發執行,在步驟2裡面執行了一句呼叫函數的語句

this.$emit('increment')
登入後複製

我們來看看文件

vm.$emit( event, […args] ) : 觸發目前實例上的事件。附加參數都會傳給監聽器回呼

# 這裡是什麼意思呢?按我自己的大白話就是這樣說的:

透過這句函數可以讓父元件知道子元件呼叫了什麼函數,this.$emit('increment') 即類似於子元件跟父元件說了一聲“hi,爸爸我調用了我自己的increment函數”,通知父元件

步驟4:

回看一下在父元件裡面定義的自訂標籤,可以看到

v-on:increment="incrementTotal"
登入後複製

什麼意思呢?我們還是用大白話來解釋一下

# 是說「孩子,當你呼叫了increment函數的時候,我會呼叫incrementTotal函數來回應你」

這時我們回想步驟3,在子元件我們已經使用emit來進行通知,所以,這樣就形成父子元件間的相互呼應傳遞訊息,其實在開發的過程中父子元件通訊也都是使用這樣的方法,父元件傳遞訊息給子元件的時候會透過props參數,通常不會直接在子元件中修改父元件傳遞下來的訊息,而且透過這樣的一個鉤子去通知父元件對某些參數進行改變

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

JS匿名函數應該如何使用

#nodejs基於ffmpeg進行視訊推流直播

Vue2.0設定全域樣式步奏詳解

#

以上是Vue.js中v-on事件使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板