HarmonyOS 组件通过if条件渲染或visibility显隐控制,性能上如何选择?

HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

作用方式

开发者可以通过if条件渲染或visibility显隐控制,实现组件的展示和隐藏状态的切换,两者的作用方式区别如下:

通过if进行条件渲染,其作用方式是满足条件时创建、未满足条件时销毁组件:

  • 只有在满足条件时,组件才会被创建。
  • 条件不满足时,组件会被销毁,不会挂载在组件树上。

通过visibility进行显隐控制,根据参数值,控制当前组件显示或隐藏:

1.初始时,无论是否显示,组件都会被创建。

2.隐藏时,组件不会被销毁,会继续挂载在组件树上,只是状态为不可见。

场景选择

关于if条件渲染或visibility显隐控制,实现组件的展示和隐藏状态的切换,两者的优势场景分别如下:

显隐控制的优势场景:

  • 如果组件动效占用较多、频繁地在展示和隐藏间切换时,建议使用显隐控制替代条件渲染,以避免组件的频繁创建与销毁,提升性能。详细使用场景,请参考《优化布局性能》。

条件渲染的优势场景:

  • 在应用冷启动阶段,应用加载绘制首页时,如果组件初始不需要显示,建议使用条件渲染替代显隐控制,以减少渲染时间,加快启动速度。详细使用场景,请参考《应用冷启动与加载绘制首页》。
  • 如果组件动效占用较少或无动效、不会较频繁地在展示和隐藏间切换,或者大部分时间不需要显示,建议使用条件渲染替代显隐控制,以减少界面复杂度、减少嵌套层次,提升性能。
  • 如果被控制的组件所占内存庞大,开发者优先考虑内存时,建议使用条件渲染替代显隐控制,以即时销毁不需要显示的组件,节省内存。
分享
微博
QQ
微信
回复
4天前
相关问题
合理选择条件渲染控制
677浏览 • 1回复 待解决
组件设置visibility属性的回调
536浏览 • 2回复 待解决