uni-app 小程序环境 vue3 组件 update:modelValue 无效
uni-app 小程序环境 vue3 组件 update:modelValue 无效
| 项目属性 | 值 |
|---|---|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.3 |
| 第三方开发者工具版本号 | 1.05.2107090 |
| 基础库版本号 | 2.19.5 |
| 项目创建方式 | HBuilderX |
示例代码:
<template>
<view @tap="change">
组件内:{{modelValue}}
</view>
</template>
<script>
export default {
name:"comp",
props: ['modelValue'],
data() {
return {
};
},
methods: {
change(){
this.$emit('update:modelValue', Math.random())
}
}
}
</script>
<comp v-model="title"></comp>
这个组件,在小程序环境, 点击没有任何变化, H5是好用的
操作步骤:
如上
预期结果:
如上
实际结果:
如上
bug描述:
vue3,小程序环境,组件的update:modelValue,无效,v-model不会有任何效果
更多关于uni-app 小程序环境 vue3 组件 update:modelValue 无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题复现,后续优化,已加分,感谢您的反馈!
更多关于uni-app 小程序环境 vue3 组件 update:modelValue 无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
核心功能…
这个什么时候更新啊?
最新的HBuilderX Alpha已支持
在 uni-app 的 Vue3 环境下,小程序平台确实存在 update:modelValue 事件无法正常触发的问题。这是因为小程序环境的事件机制与 H5 不同,导致自定义事件名中的冒号 : 可能无法被正确识别和处理。
解决方案:
-
使用
v-model的参数形式(推荐): 将组件内的update:modelValue改为update:model-value(短横线命名法),这是小程序环境下更兼容的写法。<template> <view @tap="change"> 组件内:{{modelValue}} </view> </template> <script> export default { name:"comp", props: ['modelValue'], methods: { change(){ this.$emit('update:model-value', Math.random()) } } } </script>父组件使用方式不变:
<comp v-model="title"></comp> -
使用
v-model的完整写法: 如果上述方法仍不生效,可以显式地拆解v-model的语法糖,分别绑定modelValue和监听update:modelValue事件。父组件:
<comp :modelValue="title" [@update](/user/update):modelValue="title = $event"></comp>

