草庐IT

Flutter三棵树系列之BuildOwner

引言Flutter开发中三棵树的重要性不言而喻,了解其原理有助于我们开发出性能更优的App,此文主要从源码角度介绍Element树的管理类BuildOwner。是什么?BuildOwner是element的管理类,主要负责dirtyElement、inactiveElement、globalkey关联的element的管理。final_InactiveElements_inactiveElements=_InactiveElements();//存储inactiveElement。finalList_dirtyElements=[];//存储dirtyElement,就是那些需要重建的elem

Flutter三棵树系列之详解各种Key

简介key是widget、element和semanticsNode的唯一标识,同一个parent下的所有element的key不能重复,但是在特定条件下可以在不同parent下使用相同的key,比如page1和page2都可以使用ValueKey(1)。常用key的UML关系图如上,整体上key分为两大类-LocalKey和GlobalKey,这两个key都是抽象类,LocalKey的实现类有ValueKey、ObjectKey和UniqueKey,GlobalKey实现类有LabeledGlobalKey和GlobalObjectKey。Key@immutableabstractclass