Flutter 优化
优化和React Native的优化方案很像,几乎都是一样的,都是让界面和用户交互的时候,避免过多不必要的渲染。主要集中在代码节点数量优化和渲染逻辑上。
代码优化
尽可能的减少布局组件,比如不必要的布局容器就直接删了,比如套了好多层Center组件和Container组件。
尽可能的把构造函数使用const修饰,代表不可变减少重渲染。
在交互中,很多时候都是个别数据进行改变,因此一个页面不要用一个很大的Widget,要拆开Widget,比如一些是纯展示的,就用无状态组件,一些数据可能交互改变的地方,单独拆出来widget类。
一些经常变化的地方,用RepaintBoundary来缓存当前的widget,避免高频的渲染,相当于节流防抖那一套了。
列表
尽可能的使用滚动组件的懒加载构造,比如ListView.builder,
AutomaticKeepAliveClientMixin 这个可以理解为是vue中的keepalive组件,就是保持页面状态。
图像优化
一些图片尽可能的小一些,因为Flutter是把图片绘制到界面上了,因此图片太大绘制时间就会加长。
体验优化就是增加一些骨架图。
setState
每次尽可能的少更新变量。不要一下子更新一堆。
如果应用复杂的话,就不要用自身管理状态这一套的,就跟React一样,比如React用了redux,那么Flutter也可以用同样的这种数据管理方案,如Provider。
耗时任务
这些任务给放到异步队列里面。还有可以联想vue的计算属性,Flutter也有计算属性,避免重复的计算。
网络优化
就是nginx配置那块第一,其次就是重复请求和重试次数要合理。
资源
没使用的资源,如图片,字体等直接删了,或者打包的时候进行排除。
还有一些就是尽可能的打包对应架构的安装包。