uni-app hBuilderX 4.76 uniapp vue2版 WEB和APP端组件的事件捕获不支持横杠转驼峰写法,小程序端支持
uni-app hBuilderX 4.76 uniapp vue2版 WEB和APP端组件的事件捕获不支持横杠转驼峰写法,小程序端支持
示例代码:
<template>
<view @click="click">test</view>
</template>
<script>
export default {
methods: {
click() {
this.$emit('row-click');
},
},
};
</script>
<template>
<com [@rowClick](/user/rowClick)="clickHandle"></com>
</template>
<script>
export default {
methods: {
clickHandle() {
console.log(' clickHandle ');
},
},
};
</script>
操作步骤:
点击组件的test标签,父页面index.vue捕获row-click事件
预期结果:
微信小程序端、WEB端、APP端,均可以使用rowClick捕获row-click
实际结果:
微信小程序端可以,WEB端、APP端不行
bug描述:
hBuilderX 正式版 4.76 vue2版,组件以横杠命名的事件名(例如row-click),在其父组件使用驼峰写法(@rowClick=‘clickHandle’)进行事件捕获,微信小程序端支持,WEB和APP端不支持。
更多关于uni-app hBuilderX 4.76 uniapp vue2版 WEB和APP端组件的事件捕获不支持横杠转驼峰写法,小程序端支持的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app hBuilderX 4.76 uniapp vue2版 WEB和APP端组件的事件捕获不支持横杠转驼峰写法,小程序端支持的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的跨端兼容性问题。在uni-app中,事件命名规范在不同平台确实存在差异:
根本原因:
- 小程序端基于微信原生机制,自动支持事件名的横杠转驼峰转换
- WEB端和APP端基于Vue2的浏览器事件机制,不支持自动转换
解决方案:
- 统一使用横杠命名法(推荐)
<com @row-click="clickHandle"></com>
- 或在组件内部统一处理
// 组件内部
methods: {
click() {
// 同时触发两种命名
this.$emit('row-click');
this.$emit('rowClick');
}
}

