dart - 如何防止基于flutter中的自定义逻辑重新渲染小部件?

标签 dart flutter

来自 react 背景,它有许多生命周期方法,我可以在其中决定是否重新渲染组件。当我有很多组件时,我最近在 flutter 中遇到了性能问题,因为它必须重新渲染所有这些。

我可以做些什么来防止这种重新渲染或对其进行更多控制以决定何时重新渲染而无需遍历小部件树?

最佳答案

通常当您因为渲染太多小部件而遇到性能问题时,您使用的是 ListView 或 GridView。您可以通过使用 ListView.builder() 或 GridView.builder() 方法来防止此性能问题。 ListView.builder 和 GridView.builder 将仅呈现屏幕上的小部件,从而防止出现性能问题。

这里有一些例子:

使用 GridView:

GridView.builder(
  gridDelegate:
      SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
  itemBuilder: (BuildContext context, int index) => _grid(data[index]),
) 

使用 ListView :

ListView.builder(
  itemBuilder: (BuildContext context, int index) => _listItem(data[index]),
)

关于dart - 如何防止基于flutter中的自定义逻辑重新渲染小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084203/

相关文章:

flutter - 标记未在 map 上添加

firebase - 使用 Flutter 将 Firebase token 转换为字符串

dart - Flutter 在执行后台任务时显示 Progress HUD

javascript - 从 Dart 监听 javascript 事件

flutter - 如何在 Flutter 中将 AlertDialog FlatButton 居中

flutter - 如何使用 customPaint 添加图像作为背景?

flutter - 如何在 flutter 中创建一个固定的文本标签

string - 如何删除 Dart 中字符串的所有空格?

dart - 如何在 Dart 中使对象成为一次性对象?

visual-studio-code - Flutter-为我的应用程序创建一个 android 模拟器