flutter 声明周期相关 BuildOwner.finalizeTree

1 WidgetsBinding.drawFrame 执行的时候 会 回调 BuildOwner.finalizeTree。
  1.1 执行_inactiveElements._unmountAll()
     1.1.1 设置_locked 为true。
     1.1.2 _elements 排序放到 elements,_elements 清空。
     1.1.3 遍历每一个elements 执行_unmount
   1.2 执行_unmount,遍历执行每一个element的unmount
      1.2.1 Element.unmount()
           如果key是GlobalKey ,移出owner中的注册。
           设置_dependencies =null ,_widget = null
           设置_lifecycleState = _ElementLifecycle.defunct;
       1.2.2 RenderObjectElement.unmount()
            执行widget.didUnmountRenderObject()
            执行_renderObject!.dispose();
            设置_renderObject = null;
        1.2.3 StatefulElement.unmount()
             执行state.dispose();
             执行 state._element = null;
             执行_state = null;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容