对于Flutter的性能优化,Google官方在frameWork层做了很多优化,包括渲染机制中的diff算法,因此Flutter的性能是非常强大的。那么做Flutter的性能优化,我们只需要关注widget层的性能优化,以确保我们的flutter项目能在60fps的屏幕上丝丝润滑,甚至是120fps的屏幕上。我对flutter的性能优化分为以下几点:
1.widget build()方法避免执行重复耗时的非必要操作
避免在widget或者state的build()
方法中进行重复且耗时的非必要工作,因为当父 widget 重建时,子 widget 的 build()
方法会被频繁地调用。因此确保非必要的耗时工作不放在build()方法中。
2.控制widget setState()的重建范围
- 在StatefulWidget中调用setState()会引起该widget的重建,会调用state的build()方法。当一个页面只有一个StatefulWidget,把全部widget的状态都放在这个StatefulWidget,并且该StatefulWidget为页面最顶端的父widget时,setState方法会让整个页面的widget重建。因此,将一个页面中的widget进行多个StatefulWidget的状态划分,每个StatefulWidget只负责自己的状态维护,将大大缩小flutter页面绘制范围。
3.控制widget重建次数
- 不会改变的widget使用const,如Text、Icon、Image等,这样可以复用这部分widget,不会导致widget重建
child: const Text( '登录', styl