例如如下的一个组件,我想监听点击事件
<some-component @click="handleClick"></some-component>
但是这样做的话,并不能触发click
事件。
在vue中提供了一个$listeners
属性,可以获取到组件上的所有事件监听,所以需要进行一些如下处理
<template>
<div v-on="eventListeners">
<!--some code here-->
</div>
</template>
<script>
export default {
computed: {
eventListeners() {
return Object.assign({}, this.$listeners);
},
},
};
</script>
这里使用计算属性,将父级的所有事件监听传递到当前的组件中,在当前组件完成监听,这样使用起来就和在父组件上监听事件没什么区别了。
如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!
如无特殊声明,文章均为原创,若有不正之处,万望告知。转载请附上原文地址,十分感谢!