Flutter 最佳实践 - 04
Posted 会煮咖啡的猫咪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 最佳实践 - 04相关的知识,希望对你有一定的参考价值。
Flutter 最佳实践 - 04
原文 https://vipinvijayannair.medium.com/
前言
作者把工作中的经验这样了罗列,这是第 4 部分,持续更新。
正文
1. 对不修改的变量使用 final/const 关键字
" final"表示单一赋值: final 变量或字段必须有一个初始值设定项。一旦分配了一个值,就不能更改最终变量的值。Final 修改变量。
如果你不知道在编译时的值,那么 final 应该用在 const 上,并且它会在运行时被计算/获取。
如果您有一个 const 集合,那么其中的所有内容都是 const。如果您有一个最终的集合,那么其中的所有内容都不是最终的。
还有更多的差异和例子,以便更好地理解。
// Don’t
String firstName = "John"
int a = 1
// Dofinal
String firstName = "John"
const int a = 1
//or
const a = 1
2. 不要用 +
连接字符串,使用字符串插值
// Don't
final String firstName = "John";
final String text = firstName + " Doe"
// Do
final String firstName = "John";
final String text = "$firstName Doe"
3. 不要创建一个 Lambda,只要 tear-off 就可以了
如果我们有一个函数,它调用的方法具有与传递给它的参数相同的参数,那么就不需要手动将调用封装在 lambda 中。
List<String> names = []
// Don’t
names.forEach((name)
print(name);
);
// Do
names.forEach(print);
4. 使用异步/等待更易读的方式
// Don’t
Future<int> getUsersCount()
return getUsers().then((users)
return users?.length ?? 0;
).catchError((e)
log.error(e);
return 0;
);
// Do
Future<int> getUsersCount() async
try
var users = await getActiveUser();
return users?.length ?? 0;
catch (e)
log.error(e);
return 0;
5. 对具有相同视图的构建列表使用 ListView.Builder。
-
Listview.builder
创建列表,该列表仅根据需要构建行视图。 -
Listview.builder
对用户可见的行视图重用屏幕之外的行视图。 -
默认 ListViews
列表视图不会重用这些行,并且会一次创建所有列表,如果列表太大,这可能会导致性能问题。
结束语
如果本文对你有帮助,请转发让更多的朋友阅读。
也许这个操作只要你 3 秒钟,对我来说是一个激励,感谢。
祝你有一个美好的一天~
© 猫哥
-
微信 ducafecat
-
https://wiki.ducafecat.tech
-
https://video.ducafecat.tech
本文由 mdnice 多平台发布
以上是关于Flutter 最佳实践 - 04的主要内容,如果未能解决你的问题,请参考以下文章