zoukankan      html  css  js  c++  java
  • Vue自定义事件,$on(eventName) 监听事件,$emit(eventName) 触发事件

    <!--自定义事件
    使用 $on(eventName) 监听事件
    使用 $emit(eventName) 触发事件-->
    <div id="app15">
        <div id="counter-event-example">
          <p>{{ total }}</p>
          <button-counter></button-counter>
          <button-counter v-on:increment="incrementTotal"></button-counter>
        </div>
    </div>
    
    <script>
    Vue.component('button-counter', {
      template: '<button v-on:click="incrementHandler">{{ counter }}</button>',
      data: function () {
        return {
          counter: 0
        }
      },
      methods: {
        incrementHandler: function () {
          this.counter += 1
          this.$emit('increment')
        }
      },
    })
    new Vue({
      el: '#counter-event-example',
      data: {
        total: 0
      },
      methods: {
        incrementTotal: function () {
          this.total += 1
        }
      }
    })
    </script>

    怎么来看上面的触发事件$emit(eventName)呢。

    1.Vue.component注册了一个组件,名称叫button-counter,template中是组件内容,data中定义一个方法返回counter。

    2.methods中定义的一个方法,incrementHandler是方法的名称,而方法中this.$emit('increment')是触发了increment对应v-on:increment。

    3.v-on:increment又执行了方法incrementTotal,所以才能点击的时候Total才会跟着加。而第一个按钮就没执行v-on:increment,所以Total不变。

  • 相关阅读:
    6.Mysql之MGR的限制和局限性
    5.Mysql之MGR原理浅谈02
    2.shell之cut详解
    1.Shell编程的基本语法01
    4.Mysql之MGR浅谈01
    3.Mysql之MHA实战(03)
    2.Mysql之高可用架构MHA(02)
    1.数据库的三大范式是什么?
    1.Mysql之主从复制浅谈01
    6.Mydumper和Myloader备份恢复
  • 原文地址:https://www.cnblogs.com/feipengting/p/10401638.html
Copyright © 2011-2022 走看看