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
- Retrofit2與服務端例項講解服務端
- Macro / Micro / Weighted AUC 如何計算例項講解Mac
- Vue.js自定義指令的用法與例項Vue.js
- SQL觸發器例項講解SQL觸發器
- 如何讀懂火焰圖?+ 例項講解程式效能優化優化
- Python裝飾器例項講解(三)Python
- 防抖和節流(例項講解)
- Unity射擊例項講解—主角建立Unity
- 設計模式 - 原則及例項講解設計模式
- 設計模式例項講解 - 里氏替換設計模式
- 設計模式例項講解 - 介面隔離設計模式
- 設計模式例項講解 - 依賴倒置設計模式
- Unity射擊例項講解—子彈建立Unity
- Android:Retrofit 2.0 使用攻略(含例項講解)Android
- 【深度學習篇】---CNN和RNN結合與對比,例項講解深度學習CNNRNN
- 設計模式例項講解 - 開放封閉設計模式
- C#中的虛方法(virtual)例項講解C#
- Android探索之旅 | AIDL原理和例項講解AndroidAI
- 天美動畫師例項講解:如何才能畫好一團火焰?動畫
- Java volatile關鍵字最全總結:原理剖析與例項講解(簡單易懂)Java
- Vue.js編輯文字--菜鳥教程例項Vue.js
- 效能測試-例項講解VU、RPS、RT公式換算公式
- python3+requests+unittest介面自動化例項講解Python
- 例項講解:我的強化學習初體驗!強化學習
- MySQL共享鎖:使用與例項詳解MySql
- Spring程式設計式和宣告式事務例項講解Spring程式設計
- Js 的事件迴圈(Event Loop)機制以及例項講解JS事件OOP
- Laravel 服務容器、服務提供器、契約例項講解Laravel
- 對pandas進行資料預處理的例項講解
- 與CNAME有關的DNS解決例項DNS
- vue中$emit與$onVueMIT
- 「SSM框架最新專案」搭建個人部落格例項講解教程SSM框架
- Activiti的流程例項【ProcessInstance】與執行例項【Execution】
- 例項詳解 Java 死鎖與破解死鎖Java
- .NET Emit 入門教程:第六部分:IL 指令:5:詳解 ILGenerator 指令方法:建立例項指令MIT
- 例項講解昇騰 CANN YOLOV8 和 YOLOV9 適配YOLO
- 例項講解hadoop中的map/reduce查詢(python語言實現HadoopPython