在Vue项目中,通常需要用到封装组件,但是在给组件添加click事件时却发现无法执行,以下是常用的两种解决方案:
1、最简单的做法,添加 .native修饰,对于组件要求不高的情况下,使用此方法最为直接方便;
2、如果要求比较高,那么就试试添加 listeners:
首先给自定义组件绑定监听事件
<div class="xtItemContainer" v-on="clickListeners">自定义组件内容</div>
在自定义组件内添加
computed: { clickListeners: function () { let vm = this return Object.assign({}, // 我们从父级添加所有的监听器 this.$listeners, // 然后我们添加自定义监听器, // 或覆写一些监听器的行为 { // 这里确保组件配合 `v-model` 的工作 click: function (event) { console.log("监听事件"); vm.$emit('click', event.target) }, } ) }, }
现在再次在给此自定义组件绑定@click就可以了!

Logo

前往低代码交流专区

更多推荐