uni-app——uni-app性能优化

详见 uni-app官网

  • 编译模式改为v3

  • 避免使用大图

  • 如果不是视图所需要的变量,可以不定义在 data 中,可在外部定义变量或直接挂载在vue实例上,以避免造成资源浪费(定义在 data 里面的数据每次变化时都会通知视图层重新渲染页面)

  • 减少一次性渲染的节点数量, 如服务器一次返回100条数据,可分批加载,一次加载50条,500ms后进行下一次加载

  • 减少组件数量、减少节点嵌套层级。(每个组件渲染时都会触发一次通信,太多组件就会阻塞通信)

  • 避免视图层和逻辑层频繁进行通讯。

    比如:

    1、减少 scroll-view 组件的 scroll 事件监听、

    2、注意 onPageScroll 的使用,onPageScroll 进行监听时,视图层会频繁的向逻辑层发送数据、

    3、多使用css动画,而不是通过js的定时器操作界面做动画

  • 优化页面切换动画

    1、延时渲染图片或复杂原生组件或分批渲染

    2、自定义动画效果

    3、App-nvue和H5,还支持页面预载

  • 优化背景色闪白

    1、新页面进入时闪白

    - 如页面背景是深色, 原因是webview背景生效太慢,可将样式写在App.vue中。
    

    2、老页面进入时闪白

    • 老窗体会有一个半透明消失的效果。这个半透明效果的背景色,可以根据需要调节为暗色系。 在pages.json里globalStyle下或指定页面下,配置app-plus专属节点,然后配置animationAlphaBGColor属性
  • 优化启动速度

    1、App端使用v3编译器,首页为nvue页面时,并设置为fast启动模式,此时App启动速度最快。

    2、App设置为纯nvue项目(manifest里设置app-plus下的renderer:“native”),这种项目的启动速度更快,2秒即可完成启动。

  • 优化包的体积

    1、自定义es6转es5、css对齐的功能等编译功能是否开启

    2、开启摇树优化机制, 此优化机制需在manifest配置

    3、在 manifest.json-App模块权限去除不需要的模块权限

    4、App端支持如果选择纯nvue项目(manifest里设置app-plus下的renderer:“native”),包体积可以进一步减少2M左右

    5、App端在HBuilderX 2.7后,App端下掉了非v3的编译模式,包体积下降了3M。

猜你喜欢

转载自blog.csdn.net/qq_43201350/article/details/121423268
今日推荐