Flutter Key 讲解

key --- Value

模式模式下,value就是我们的widget

为什么要有key?

flutter中是增量更新,只更新了差异点。

任何的恶widget都有key。

有些时候不使用key。会导致渲染引擎失控,更新的时候没有参考物key.

为什么会有上面失控的情况?

---------Widget. Tree-------------------- 内部渲染引擎 Element Tree---

| |

--------一系列的类。--------对应--------------实例-------------------

-------例如:My,My,My,-----------------MyElement,MyElement,MyElement--

有状态1,状态2,状态3.

如果是相同的类型,才会考虑key来解决

当MY删除一个是后,就会导致类型和Element无法对应。

对应关系不一致导致失控

全局的key是什么

复制代码
abstract class Key {
  /// Construct a [ValueKey<String>] with the given [String].
  ///
  /// This is the simplest way to create keys.
  const factory Key(String value) = ValueKey<String>;

  /// Default constructor, used by subclasses.
  ///
  /// Useful so that subclasses can call us, because the [Key.new] factory
  /// constructor shadows the implicit constructor.
  @protected
  const Key.empty();
}

上面是抽象的key。

子类:LocalKey 局部的key,周围同一级的唯一性的保障,---开发尽量使用这个localkey性能更 高

---》 LocalKey的子类 ValueKey 等等。

GlobalKey 全局的key,整个app里的全局唯一性,性能就低一点。

//------------------------//

无状态的部件是不用考虑key的--一般情况

有状态的widget,并且有相同类型才考虑key。

//-------------------------//

ObjectKey --引用的对比。

ValueKey --值的对比。

UniqueKey()?

复制代码
这个是主动放弃key的关系,现象是不会保持数据。

应用的场景---------》可以主动丢弃,来证明需要更新---强制性告诉flutter丢弃上一帧的key。

相关推荐
一起养小猫7 分钟前
Flutter for OpenHarmony 实战:推箱子游戏完整开发指南
flutter·游戏·harmonyos
子春一9 分钟前
Flutter for OpenHarmony:构建一个 Flutter 数字华容道(15-Puzzle),深入解析可解性保障、滑动逻辑与状态同步
flutter·游戏
2601_949857431 小时前
Flutter for OpenHarmony Web开发助手App实战:文本统计
前端·flutter
2501_940007892 小时前
Flutter for OpenHarmony三国杀攻略App实战 - 项目总结与未来展望
flutter
一起养小猫3 小时前
Flutter for OpenHarmony 进阶:递归算法与数学证明深度解析
算法·flutter
小虾爬滑丫爬3 小时前
flutter开发手机app,一直安装不到真机上apk
flutter·安装apk卡死
2601_949857433 小时前
Flutter for OpenHarmony Web开发助手App实战:CSS参考
前端·css·flutter
一起养小猫3 小时前
Flutter for OpenHarmony 实战:汉诺塔游戏完整开发指南
flutter·游戏
kirk_wang3 小时前
Flutter艺术探索-Flutter Shader编程:着色器与特效实现
flutter·移动开发·flutter教程·移动开发教程
一起养小猫3 小时前
Flutter for OpenHarmony 进阶:Timer组件与倒计时系统深度解析
android·网络·笔记·flutter·json·harmonyos