美文网首页
vue父子组件之间$emit的数据通信

vue父子组件之间$emit的数据通信

作者: 黑白说程序 | 来源:发表于2020-09-16 17:14 被阅读0次

    父子组件通信中,父传子是使用v-blind绑定props传递由上向下传递数据,那么子传父是通过v-on绑定自定义事件由emit发生接受数据的。

    子传父数据方式如下

    ①在子组件的标签内使用v-on:click绑定一个方法并将值通过方法传递

    ②在子组件的methods中定义子组件标签定义的方法,使用this.$emit将一个自定义的事件和值发射出去

    ③在父组件调用子组件的标签上使用v-on绑定子组件发生的事件,并绑定一个方法,在父组件的methods定义方法接受子组件传递的值

    因为这是一个自定义的事件,所以不会有默认的event事件,这和系统默认的事件是不同的,这里默认的是子组件传递值

     <div id="app">

        {{count}}

        <com @numadd="addclick" @numdec="decclick"></com>

      </div>

      <template id="templateId">

        <div>

          <button @click="addclick">加一</button>

          <button @click="decclick">减一</button>

        </div>

      </template>

      let com = {

        template: "#templateId",

        methods: {

          addclick(e) {

            console.log(e);

            this.$emit("numadd", e)

          }, decclick(e) {

            this.$emit("numdec", e)

          }},}

      const vm = new Vue({

        el: "#app",

        data: {

          count: 0

        },

        methods: {

          addclick() {

            this.count++

          }, decclick() {

            this.count--

          }},

        components: {

          com

        }})

    相关文章

      网友评论

          本文标题:vue父子组件之间$emit的数据通信

          本文链接:https://www.haomeiwen.com/subject/kpznektx.html