Rychou / mpvue-vant

mpvue中无缝接入Vant Weapp组件库,所有组件均可使用。
406 stars 68 forks source link

van-tabs组件@click事件捕捉问题 #47

Closed catfishlty closed 5 years ago

catfishlty commented 5 years ago

van-tabs组件@click事件捕捉时会首先启用vue的事件捕捉机制

我的解决方法是将click事件修改为vclick

/static/vant/tabs/index/js line: 121

// 修改前
this.trigger('click', index);
// 修改后
this.trigger('vclick', index);

test/index.vue

<van-tabs :active="active" @vclick="handleClick">
handleClick ({ mp }) {
  console.log(mp.detail.index)
}
Rychou commented 5 years ago

vue和原生小程序的事件捕获机制有啥不一样吗

catfishlty commented 5 years ago

vue和原生小程序的事件捕获机制有啥不一样吗

是mpvue的问题,像click这种原生事件就会捕捉不到detail信息 详见官网:http://mpvue.com/mpvue/#vue_1

Rychou commented 5 years ago

detail信息被封装的e.mp.detail中去了。这种vant组件库用原生写的组件是可以捕获到click这种事件的。文档中指的是vue组件在引用时无法使用@click

catfishlty commented 5 years ago

具体的原因我没有去探究,但是使用上确实会发生这样的情况。在隔壁iview那边,用到@click的几个组件也是会受影响的