Flutter 在 diff 过程中,如何知道哪些 Widget 没有变化

2 min read

Flutter 在 diff 过程中判断哪些 Widget 没有变化,稍微有些复杂,有两种情况:

  • 默认情况下( Widget 没有设置 Key)

    当没有给 Widget 设置 Key 时,Flutter 会根据 Widget 的 runtimeType 和显示顺序是否相同来判断 Widget 是否有变化。

    runtimeType 是 Widget 的类型,例如 Text 和 RaisedButton 就是不同的类型。

  • Widget 有 Key

    当给 Widget 设置了 Key 时,Flutter 是根据 Key 和 runtimeType 是否相同来判断 Widget 是否有变化。