<template>
<view>
<button @click="show = !show"> show</button>
<view v-if="show">
<view v-for="item in 1000">
<text>{{item}}</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
show:true
}
},
methods: {
}
}
</script>
<style>
</style>

- 发布:2025-05-23 10:38
- 更新:2025-05-23 18:51
- 阅读:103
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window 11
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: Android
手机系统版本号: Android 12
手机厂商: 三星
手机机型: S21
页面类型: nvue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
反复点击button按钮
反复点击button按钮
预期结果:
app的内存顺着显示隐藏会上升和下落
app的内存顺着显示隐藏会上升和下落
实际结果:
app的内存占用一直攀升不见下降
app的内存占用一直攀升不见下降
bug描述:
通过不断的v-if 显隐view模块,发现app的内存占用一直攀升不见降落,adb shell 进入app 查看 Views的数量一直增加不会下降。



爱豆豆 - 办法总比困难多
view没有做优化吧 可以去插件市场找一下虚拟列表插件来代替
或者用list组件 有不可见部分的渲染资源回收有特殊的优化处理
参考文档:https://uniapp.dcloud.net.cn/component/list.html#list
qjr (作者)
我实际的代码中就是用了list组件去做的,我发现了这个问题才用最简单的demo复现
2025-05-23 19:14