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://ducafecat.com