怒了,写了一个自定义点击事件指令,结果导致每次刷新页面,都会执行这个指令,找了半天也找不到原因,最后!!!我把点击事件传参去掉了,就...好了?
原文
<div
v-click-kta="gotoItemLink(item)"
v-else
:data-item="item">
<img
:src="item.imgUrl"
alt="" >
</div>
去掉参数后
v-click-kta="gotoItemLink"
但是现在怎么传参啊啊啊啊啊啊啊,问了AI几百遍都巴拉巴拉说些指令的生命周期这些没用的
最后我准备在div标签绑定data-属性,来在指令中获取参数,然后...我调着调着,就在网上找到了传参文档,arg !!!,对!就是它binding.arg,可以了,气顺了,解散!
// 注册自定义指令
Vue.directive('click-kta', {
// 当被绑定的元素挂载到DOM上时...
inserted(el, binding) {
const item = binding.arg;
// 添加点击事件监听器
el.addEventListener('click', () => {
// 执行绑定到指令的值对应的函数
binding.value(item);
});
},
// 当被绑定的元素从DOM上移除时...
unbind(el) {
// 移除点击事件监听器
el.removeEventListener('click');
}
});