跳到主要内容

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配置那块第一,其次就是重复请求和重试次数要合理。

资源

没使用的资源,如图片,字体等直接删了,或者打包的时候进行排除。

还有一些就是尽可能的打包对应架构的安装包。