flutter的key

Key本身是一个抽象类,用作diff的核心算法比较Widget。
-ValueKey 以一个数据作为Key
-ObjectKey 以Object对象为Key
-UniqueKey 可以保证Key的唯一性(注意:一旦使用UniqueKey就不存在Element的复用了)
在widget中有一个能否复用的判断,如果key为null,则只判断类型,会导致各种问题

 static bool canUpdate(Widget oldWidget, Widget newWidget) {
    return oldWidget.runtimeType == newWidget.runtimeType
        && oldWidget.key == newWidget.key;
  }

GlobalKey:
用来获取指定widget的State对象

你可能感兴趣的:(flutter的key)