В чем разница между 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 в шаблоне (это только для компонентов).

Другие вопросы по тегам