代码之家  ›  专栏  ›  技术社区  ›  Andrew Li

VueJs v-on:event和this.$on(event,handler)有什么区别?

  •  6
  • Andrew Li  · 技术社区  · 7 年前

    我在学习 Vuejs event handling
    我认为开发商可以 this.$on('event', handler) 在里面 js 'event' .

    有一个 example .

    <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 回复  |  直到 7 年前
        1
  •  1
  •   softbear    7 年前

    https://stackoverflow.com/a/36159698/1225266 虽然它与Vue的早期版本有关(帖子来自2016年),但我猜它仍然适用。

    为什么v-on:event=“processEventFromView”在任何时候都不被调用?

    是(我引用)

    推荐文章