$listeners 是什么?
$listeners 是Vue实例的属性。
个人理解:
所谓的$listeners其实就相当于一个中间件,当出现多级组件嵌套时,孙组件想传递数据为爷组件,那么就需要在父组件中给孙组件设置 v-on="$listeners" ,然后爷组件通过@键 的方式监听孙组件传递过来的数据
为什么要用$listeners?
因为$listeners可以很好的解决在多级组件嵌套中,组件C给组件A传递数据的问题。
$listeners 怎么使用?
1、创建一个组件1,并嵌套组件2,监听组建2和组件3传递过来的数据,具体代码如下:
<template>
<div class="root1">
我是组件1
<!--
@changeData 监听器是在组建3中定义的
@sendData 监听器是在组件2中定义的
-->
<component2 @changeData="changeData" @sendData="sendData" />
<div