Vue.js 2.0中$on與$emit如何使用之例項講解
先對兩個方法來一波解釋
vm.$on(event,callback)
引數:
{string | Array} event (陣列只在 2.2.0+ 中支援)
{Function} callback
用法:
監聽當前例項上的自定義事件。事件可以由vm.$emit
觸發。回撥函式會接收所有傳入事件觸發函式的額外引數。
示例:
vm.$on('test', function (msg) {
console.log(msg)
})
vm.$emit('test', 'hi')
// => "hi"
vm.$emit(event,[args])
引數:
{string} event
[…args]
觸發當前例項上的事件。附加引數都會傳給監聽器回撥。
上面是官方的api,很簡潔,粗略一看很容易誤解,這裡主要是$on
的用法,這裡回過頭去看一下$on
的用法,$on
是監聽當前例項上的自定義事件,這個自定義事件可以由$emit
來觸發,$on
回撥函式接收的msg便是$emit
方法第二個引數傳過來的值。當然你也可以在回撥函式裡不使用msg引數而執行其他操作。
下面是例項:
再定義一個元件(一個計數的元件)
Vue.component('simple-com',{
template:'<button v-on:click="incresone">{{count}}</button>',
data:function(){
return {
count:0
}
},
methods:{
incresone:function(){
this.count+=1
//監聽自定義的事件
this.$on('increment',function(msg){
//獲取$emit方法傳遞的第二個引數
console.log(msg);
alert("1");
})
//觸發自定義的事件
this.$emit('increment',this.count)
}
}
})
再使用元件
<simple-com v-on:increment="incretol"></simple-com>
<simple-com v-on:increment="incretol"></simple-com>
<simple-com v-on:increment="incretol"></simple-com>
<p>{{total}}</p>
例項化vue
的程式碼
var vm = new Vue({
el:"#app",
data: {
total:0
}
methods:{
incretol:function(){
this.total+=1
}
}
})
當我點選計數的時候,$on
監聽increment
事件,當increment
事件執行時,便會彈出1,然後再繼續執行後面的程式碼。
當然$emit
方法傳遞的第二個引數也能獲取到
相關文章
- vue之父子元件間通訊例項講解(props、$ref、$emit)Vue元件MIT
- @PostConstruct與@PreDestroy講解及例項Struct
- Retrofit2與服務端例項講解服務端
- Vue.js自定義指令的用法與例項Vue.js
- SQL觸發器例項講解SQL觸發器
- 例項講解Java工廠模式Java模式
- C++ 運算子過載講解與經典例項C++
- Android:清晰講解JNI 與 NDK(含例項教學)Android
- 如何讀懂火焰圖?+ 例項講解程式效能優化優化
- 例項講解黑客如何執行SQL隱碼攻擊黑客SQL
- Unity射擊例項講解—主角建立Unity
- 設計模式 - 原則及例項講解設計模式
- 設計模式例項講解 - 里氏替換設計模式
- 設計模式例項講解 - 介面隔離設計模式
- 設計模式例項講解 - 依賴倒置設計模式
- Unity射擊例項講解—子彈建立Unity
- Python裝飾器例項講解(三)Python
- 閃回查詢(基礎例項講解)
- Python生成驗證碼例項講解Python
- 【深度學習篇】---CNN和RNN結合與對比,例項講解深度學習CNNRNN
- 設計模式例項講解 - 開放封閉設計模式
- C#中的虛方法(virtual)例項講解C#
- Android:Retrofit 2.0 使用攻略(含例項講解)Android
- 閃回資料庫(基礎例項講解)資料庫
- 閃回事務查詢(基礎例項講解)
- JEECG 簡單例項講解許可權控制單例
- JSF+Spring+Hibernate的例項講解JSSpring
- 智慧領域物件設計(例項講解)-2/2物件
- J2ME遊戲開發例項講解遊戲開發
- vue中$emit與$onVueMIT
- 例項講解:我的強化學習初體驗!強化學習
- Android探索之旅 | AIDL原理和例項講解AndroidAI
- python list排序的兩種方法及例項講解Python排序
- Grub安裝、配置以及使用例項彙總講解(轉)
- Python設計模式之"外觀模式"例項講解Python設計模式
- j2me遊戲開發例項講解 (轉)遊戲開發
- Vue.js編輯文字--菜鳥教程例項Vue.js
- Java volatile關鍵字最全總結:原理剖析與例項講解(簡單易懂)Java