В чем разница между v-on:event и this.$ On(событие, обработчик)?
Я учусь о Vuejs event handling
,
Я думаю, что разработчик мог бы использовать this.$on('event', handler)
в js
файл для обработки 'event'
,
Есть пример.
<div id="mainapp" v-on:event="processEventFromView">
<button type="button" v-on:click="emitEvent">
Emit Event
</button>
</div>
JS файл
var app = new Vue({
el:"#mainapp",
data:{
show:false
},
created:function(){
this.$on('event', this.processEvent);
},
methods:{
emitEvent:function(){
this.$emit('event', {data:'mydata'});
},
processEvent(data){
console.log('js', data); //this is fired when clicking the button.
},
processEventFromView(data){
console.log('view', data); //this is not fired whenever.
}
}
})
Но в примере только обработчик, processEvent
прилагается this.$on()
срабатывает при нажатии на кнопку. В чем разница между v-on
против this.$on
?
Почему v-on:event="processEventFromView"
не звонил когда-нибудь?
Могу ли я прикрепить event handler
к click
событие кнопки со ссылкой, ref
, вместо v-on:click="emitEvent"
?
Пожалуйста, помогите мне, что я не прав.
1 ответ
Я думаю, что это связано и ответил Линус Берг из Vue здесь /questions/39983441/slushajte-polzovatelskoe-sobyitie-v-vuejs/39983452#39983452 Хотя это связано с более ранней версией Vue (сообщение от 2016 года), я думаю, это все еще применяется.
Короче ответ на ваш вопрос
Почему v-on:event="processEventFromView" не вызывается всякий раз?
это (я цитирую)
нельзя использовать v-on:custom-event-name в шаблоне (это только для компонентов).