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的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 又 7 个最佳实践

11 个 Flutter 最佳实践

Flutter 最佳实践 - 01

Flutter 最佳实践 - 03

日志采集最佳实践

17 个提高性能的 Flutter 最佳实践