给Flutter build_runner加速
· 阅读需 2 分钟
Flutter 的 dart sdk是不带反射功能的,导致社区需要开发一些注解工具来辅助生成一些模板代码,大部分都 是基于官方的build_runner 工具。
但是在构建的时候,每次都去生成模板代码,非常耗时。尤其是当你的项目比较大时,有可能超过1分多钟来等待处理完成,而且每次都得重新编译,非常影响开发效率。
另外,你用的生成库越多,越影响生成速度。
Flutter 的 dart sdk是不带反射功能的,导致社区需要开发一些注解工具来辅助生成一些模板代码,大部分都 是基于官方的build_runner 工具。
但是在构建的时候,每次都去生成模板代码,非常耗时。尤其是当你的项目比较大时,有可能超过1分多钟来等待处理完成,而且每次都得重新编译,非常影响开发效率。
另外,你用的生成库越多,越影响生成速度。
Update (2024-11-05): 阅读了一些新的文章,补 充更多细节。
在 Flutter 开发中,我们经常需要创建可重用的组件。这些组件可以是简单的 UI 元素,也可以是复杂的布局结构。
一般主要有两种方式来定义这些组件:
很多人使用函数创建组件,更多的考虑是速度,更快的编码。不可否认的是,相比类组件而言,函数组件省了好几行代码,比如构造函数和变量定义部分。在我的工作中,也经常看见大量使用函数返回 widget 来创建组件,但是官方的 Flutter 团队更推荐使用类。
为什么?本文将详细探讨这一原因。
在Flutter开发中,确保使用类(Class)创建的组件具有良好的可测试性是至关重要的。