В чем разница между v-on: event и this. $ On (event, handler)? - PullRequest
0 голосов
/ 26 октября 2018

Я узнаю о 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 File

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 Ответ

0 голосов
/ 26 октября 2018

Я полагаю, что это связано с Линусом Бергом из Vue и здесь https://stackoverflow.com/a/36159698/1225266 Хотя это связано с более ранней версией Vue (сообщение от 2016 года), я думаю, это все еще применимо.

Inкраткий ответ на ваш вопрос

Почему v-on: event = "processEventFromView" никогда не вызывается?

(я цитирую)

не может использовать v-on: custom-event-name в шаблоне (это только для компонентов).

...