美文网首页
Flutter 中widget key的作用

Flutter 中widget key的作用

作者: 简单Timor | 来源:发表于2020-06-19 13:53 被阅读0次
  1. flutter 的构成。flutter 包括三个树形结构 widget树element树RenderingObject树

  2. flutter属于增量更新。每次更新界面时,都会调用build进行渲染,此时widget中调用canUpdate方法,canUpdate会去对比现有控件和旧控件的 runtimeTypewidget中的key值。如果都相同则不更新,反之更新界面。

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

3.在StatelessWidget中,因为不可变,element 的值没有报存在element中,所以update也不会改变原有界面。

StatefulWidget中,值保存在_State,如果没有标记key。则当更新界面时,会重新调用Widget build(BuildContext context) 方法。此时,widget 赋值会从头开始从element中拿取数据,放入widget。当删除为【widget[0]】时,就会出现element中数据和widget不一致。 此时就需要key,来进行特殊标识,达到 elementwidget 一一对应的作用。

相关文章

  • Flutter 中widget key的作用

    flutter 的构成。flutter 包括三个树形结构 widget树、element树、RenderingOb...

  • flutter 中的 key

    flutter中的key是用来标识[Widget]s, [Element]s and [SemanticsNode...

  • flutter-基础组件

    1.在Flutter中几乎所有的对象都是widget。2.在Flutter中widget的作用是描述一个UI元素的...

  • Flutter中Widget之key原理探索

    开始 在Flutter的每个Widget中, 都会有key这个可选属性. 在刚开始学习flutter时, 基本就直...

  • The Key of Widget in Flutter

    The Key of Widget in Flutter 当我们刚开始使用Flutter,我们在继承Statele...

  • Flutter Key

    什么是key Key 能够帮助开发者在 Widget tree 中保存状态。 Flutter | 深入浅出Key ...

  • Flutter之Widget

    Widget说明 在Flutter中几乎所有的对象都是一个 widget。Flutter 中是通过 Widget ...

  • Flutter中key的作用

    作者:森码 链接:https://www.jianshu.com/p/57debb89a24f 来源:简书 文章来...

  • Flutter中key的作用

    概述 在Widget的构造方法中,有Key这么一个可选参数,Key是一个抽象类,有LocalKey和GlobalK...

  • flutter中key的作用

    1.setState的原理 setstate会触发canUpdate函数的调用,这个函数会对比old widget...

网友评论

      本文标题:Flutter 中widget key的作用

      本文链接:https://www.haomeiwen.com/subject/pqpvxktx.html