Flutter开发小技巧【Flutter专题】

举报
坚果的博客 发表于 2021/12/21 08:37:23 2021/12/21
【摘要】 使用async/`await异步代码难以阅读和调试。该async/await语法提高了可读性。将小部件拆分为子小部件。当setState()在状态上调用时,所有后代小部件都将重建。因此,将小部件拆分为小部件,以便setState()调用实际需要更改 UI 的子树部分。使用 ListView.builder 获取长列表在处理无限列表或非常大的列表时,通常建议使用ListView构建器以提高性能...

使用async/`await

异步代码难以阅读和调试。该async/await语法提高了可读性。


将小部件拆分为子小部件。

setState()在状态上调用时,所有后代小部件都将重建。因此,将小部件拆分为小部件,以便setState()调用实际需要更改 UI 的子树部分。


使用 ListView.builder 获取长列表

在处理无限列表或非常大的列表时,通常建议使用ListView构建器以提高性能。

默认ListView构造函数一次构建整个列表。ListView.builder创建一个惰性列表,当用户向下滚动列表时,Flutter 会按需构建小部件。

在小部件中使用 Const

当 setState 调用时小部件不会改变,我们应该将其定义为常量。它将阻止小部件重建,从而提高性能。


避免使用as,使用is运算符

通常,as如果无法进行强制转换,则cast 运算符会抛出异常。为了避免抛出异常,可以使用is.

使用if条件代替条件表达式

很多时候我们需要根据Row和Column中的一些条件来渲染一个widget。如果条件表达式在任何情况下都返回 null,那么我们应该只使用 if 条件。

对文件使用相对路径导入 lib

当同时使用相对导入和绝对导入时,当从两种不同的方式导入同一个类时,可能会造成混淆。为了避免这种情况,我们应该在lib/文件夹中使用相对路径。

指定类成员的类型

当成员的值类型已知时,总是明确指定成员的类型。var尽可能避免使用。

避免print()

print()debugPrint()两个用于在控制台登录。如果您使用print()并且一次输出太多,那么Android有时会丢弃一些日志行。为避免这种情况,请使用debugPrint().如果您记录的数据有太多数据,则使用dart:developer log().这允许您在日志输出中包含更细的粒度和信息。

我希望这能给你一些见解,使你的 Flutter 代码更具可读性,同时也提高你的应用程序的性能。快乐编码!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。