<script setup>
onShow(() => {
debugger
console.log('---------onShow---------',new Date())
})
</script>
![水车](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/001/99/70/09_avatar_mid.jpg?v=1649928446)
- 发布:2023-05-16 17:36
- 更新:2023-05-16 18:04
- 阅读:327
产品分类: uniapp/H5
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.6.5
HBuilderX类型: 正式
HBuilderX版本号: 3.7.9
浏览器平台: Chrome
浏览器版本: 113.0.5672.92
项目创建方式: HBuilderX
示例代码:
操作步骤:
一个页面中有多个子模块,每个子模块都有onShow 回调函数,在onShow回调中写入逻辑代码。
一个页面中有多个子模块,每个子模块都有onShow 回调函数,在onShow回调中写入逻辑代码。
预期结果:
每次触发onShow时,只执行一次即可。多次切换后,每次也只执行一次。
每次触发onShow时,只执行一次即可。多次切换后,每次也只执行一次。
实际结果:
函数一直在累增执行。
函数一直在累增执行。
bug描述:
问题描述
页面生命周期函数 OnShow 会累增执行,第一次切换执行1次,第二次切换执行2次,第三次切换执行3次,以此类推。直到强制刷新页面清空缓存后再次从头开始累增。
如果一个页面有多个组件都使用到了 onShow回调函数,则会导致一次累增多次。已上传操作视频。
视频解释
选择第一个选项,里面有三个带onShow的模块,结果每一个onShow 函数执行了边,第二个选项有一个带onShow的子模块,缺执行了4遍:(3+1),切换会第一个模块后,onShow 执行了7遍(4+3),切换回第二个选项后,onShow执行了8遍(7+1),一直执行,会无限累增。如果onShow中写入逻辑函数,也会执行很多遍。
![Diligent_UI](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/001/28/02/43_avatar_mid.jpg?v=1721956781)
Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序
组件内没有onshow这个函数,只有页面有,无法理解你的意思