<template>
<button style="margin-top: 100px" @tap="plus1">+ v1: {{ v1 }}</button>
<button style="margin-top: 30px" @tap="plus2">+ v2: {{ v2 }}</button>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const v1 = ref(0);
const v2 = ref(0);
const plus1 = () => {
v1.value++;
};
const plus2 = () => {
setTimeout(() => {
v2.value++;
}, 100);
};
</script>
- 发布:2022-11-27 01:04
- 更新:2023-06-28 12:57
- 阅读:512
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 22H2
第三方开发者工具版本号: Stable 1.06.2209190
基础库版本号: 2.27.3
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-3061120221125001
示例代码:
操作步骤:
该 BUG 目前仅在 Android 端微信小程序复现。
- 以上面非常简单的代码示例来看,首先快速连续点击 +v1 的 button,此时 v1 的值会快速连续增长,这符合预期,没问题
- 然后快速连续点击 2 ~ 3 次 +v2 的 button,并立即再去快速连续点击 +v1 的 button,此时 v1 的值不会变化,直到大约 0.5s ~ 1.5s 后才会开始响应点击事件,并一次性把刚才未响应的点击事件全都补回来了,也就是延迟响应
该 BUG 目前仅在 Android 端微信小程序复现。
- 以上面非常简单的代码示例来看,首先快速连续点击 +v1 的 button,此时 v1 的值会快速连续增长,这符合预期,没问题
- 然后快速连续点击 2 ~ 3 次 +v2 的 button,并立即再去快速连续点击 +v1 的 button,此时 v1 的值不会变化,直到大约 0.5s ~ 1.5s 后才会开始响应点击事件,并一次性把刚才未响应的点击事件全都补回来了,也就是延迟响应
预期结果:
此延迟响应的现象不应该存在
此延迟响应的现象不应该存在
实际结果:
此延迟响应的现象现在却存在
此延迟响应的现象现在却存在
bug描述:
该 BUG 目前仅在 Android 端微信小程序复现。
BUG 表现:在页面元素的点击事件中设置 setTimeout 去更改响应式数据,会导致整个页面的所有点击事件延迟响应,延迟时间大约在 0.5s ~ 1.5s 左右
可观看录屏
录屏地址 https://img.hammi.cn/KQWMV4L7Nrmi71lLK3WKiw9QpjqCuwIPhgu8XyHW.mp4
您好,加上这个属性data-eventsync="true"
试一下呢,https://uniapp.dcloud.net.cn/tutorial/migration-to-vue3.html#vue3-项目部分小程序端事件延迟或调用失败
-
SeasideLee (作者)
我尝试在 v1 和 v2 两个 button 上都加了
data-eventsync="true"
,这样做之后 v1 的点击事件总是能立即响应(正常了),但快速连续点击 v2 时,其点击事件还是会延迟响应,与录屏中的表现无差别2023-01-01 00:41
您好,经过反复验证,此问题是安卓底层的问题,暂无法解决。 先加上data-eventsync="true"
吧
-
SeasideLee (作者)
感谢你们对这个问题的重视,但我测试过用微信小程序的原生写法来写的话,并不会出现此 Bug,由于我未曾对 uni-app 源码进行过深入研究,我目前也无法提供进一步的有效信息了。我还是先加上
data-eventsync="true"
吧2023-01-03 16:51
不如摸鱼去 - 一个前端打工仔。如果我的回答对你产生了帮助,还请给个star: https://github.com/Moonofweisheng
只有在使用vue3开发在微信端使用setTimeout的时候会有这个问题,setTimeout响应并不准确,会延迟,希望uni-app可以解决一下这个问题
SeasideLee (作者)
是的,只有在 Android 真机上复现
2022-11-28 18:20
YUANRJ
回复 SeasideLee: Android特定机型吗?
2022-11-28 20:32
SeasideLee (作者)
回复 YUANRJ: 我这边测试了 魅族16spro、华为Mate40 两款 Android 机型,都可复现此 Bug
2022-12-01 16:10
SeasideLee (作者)
回复 YUANRJ: 我也用微信小程序的原生写法进行了测试,并无出现此 Bug
2022-12-01 16:11
SeasideLee (作者)
回复 YUANRJ: 您好,请问您这边是否复现了此 Bug ?
2022-12-07 13:57
SeasideLee (作者)
回复 YUANRJ: 您好,我这边对该 bug 的复现场景进行了录屏,请看一下 https://img.hammi.cn/KQWMV4L7Nrmi71lLK3WKiw9QpjqCuwIPhgu8XyHW.mp4
2022-12-09 15:00
SeasideLee (作者)
回复 YUANRJ: 您好,请问您这边是否复现了此 Bug?麻烦请回复我一下,如果您暂时无法跟进这个 Bug,也请告知我,我便不会继续在这个帖子下回复了
2022-12-15 14:08
YUANRJ
回复 SeasideLee: 您好,我这边暂时未复现此问题,我让我同事这边再排查一下
2022-12-15 18:02
SeasideLee (作者)
回复 YUANRJ: 好的,感谢,请看一下我上面发的录屏,是比较典型的复现场景
2022-12-16 11:28
SeasideLee (作者)
回复 YUANRJ: 您好,请问您同事有复现此 Bug 吗?我这边又用更多的 Android 手机进行了测试,都复现了此 Bug
2022-12-23 13:44
SeasideLee (作者)
回复 YUANRJ: 您好,请问关于这个 bug 有任何进展吗?
2022-12-27 14:12
YUANRJ
回复 SeasideLee: 感谢反馈,已记录问题。
2022-12-27 17:17