欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue基础 - 事件回传之 $listeners

程序员文章站 2024-03-15 08:27:05
...

解决的问题

简单的元素层次嵌套 事件回传

对象

  • $listeners

组件由下向上回传事件

代码


<script src="https://cdn.jsdelivr.net/npm/vue"></script>

<div id="app">
  <demo1 
    @chData1="changeData1" 
    @chData2="changeData2" ></demo1>
</div>

<script lang="javascript">

  var demo11 = {
    template: `
      <div>
        传递二层:<p @click="$listeners.chdata2()">子组件</p> 
      </div>
      `
  }

  var demo1 = {
    template: `
      <div>
        传递一层:<p @click="$emit('chdata1')">子组件</p>  <p @click="$listeners.chdata1()">子组件</p>  
        <demo11 v-on="$listeners"></demo11>
      </div>
    `,
    components:{
      demo11
    },
    created () {
      console.log(this.$listeners)
    }
  }

  var app = new Vue({
    el: '#app',
    components:{
      demo1
    },
    methods: {
      changeData1: function() {
        alert(1)
      },
      changeData2: function() {
        alert(2)
      }
    }
  })

</script>