Flutter中的三棵树

        Widget Tree: 页面配置信息。

        Element Tree: Widget tree的实例化对象,创建出renderObject,并关联到element.renderobject属性上,最后完成RenderObject Tree的创建。

        RenderObject Tree:完成布局和图层绘制,输出LayerTree, 然后交给skia渲染。

        Flutter渲染划分为三棵树的其核心价值是, 页面的更新,可以根据Element变化的内容,只修改对应的RenderObject Tree,即进行增量更新

       在三棵树的构建过程中,创建RenderObject是最为耗时的操作。Flutter判断是否需要重新创建RenderObject节点,主要是根据Element Tree runtimeType和key两个字段进行判断。两者任何一个有变化,RenderObject节点就需要重建,否则只需更新RenderObject节点的属性即可。

        如下图所示:

        

        当Widget发生变化时,对比Element tree上对应位置上新旧Widget是否一致,只有不一致时才会重建Element并重建并重新进行RenderObject实例化。即RenderObject Tree只需进行增量的重建即可,这就大大提升了渲染效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/503900.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kettle开发-Day43-加密环境下运行作业

前言: 金三银四,开年第一篇我们来介绍下,怎么在加密情况下运行我们的kettle作业及任务。无疑现在所有企业都认识到加密的重要性,加密后的文件在对外传输的时候不能被访问,访问时出现一堆乱码,同时正常的应用…

租用云服务器租时要注意的问题有哪些?

随着云计算的不断发展,对云计算服务器的需求也越来越大。 那么,我们应该如何以正确的态度和方法来选择云服务器呢? 租用云服务器需要注意哪些问题? 1.了解您需要的云服务类型 了解您的云计算需求将使您了解您正在寻求的服务类型…

管理类联考--复试--英文面试--各校英文面试内容

文章目录 北京地区北京大学中国人民大学北京交通大学北京航空航天大学北方工业大学北京林业大学北京语言大学中央财经大学对外经济贸易大学首都经济贸易大学华北电力大学中国矿业大学中国石油大学北京国家会计学院中国财政科学院研究院北京理工大学北京工商大学中国农业大学 湖…

go并发模式之----工作池/协程池模式

常见模式之四:工作池/协程池模式 定义 顾名思义,就是有固定数量的工人(协程),去执行批量的任务 使用场景 适用于需要限制并发执行任务数量的情况 创建一个固定大小的 goroutine 池,将任务分发给池中的 g…

fly-barrage 前端弹幕库(3):滚动弹幕的设计与实现

项目官网地址:https://fly-barrage.netlify.app/; 👑🐋🎉如果感觉项目还不错的话,还请点下 star 🌟🌟🌟。 Gitee:https://gitee.com/fei_fei27/fly-barrage&a…

Nacos环境搭建 -- 服务注册与发现

为什么需要服务治理 在未引入服务治理模块之前,服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号,就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000,B服务直接向该IP地址发起请求就…

10-Java装饰器模式 ( Decorator Pattern )

Java装饰器模式 摘要实现范例 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构 装饰器模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供…

JVM相关面试题(2024大厂高频面试题系列)

一、JVM的组成 1、JVM由哪些部分组成,运行流程是什么? 回答:在JVM中共有四大部分,分别是Class Loader(类加载器)、Runtime Data Area(运行时数据区,内存分区)、Execut…

MySql安全加固:可信IP地址访问控制 设置密码复杂度

MySql安全加固:可信IP地址访问控制 & 设置密码复杂度 1.1 可信IP地址访问控制1.2 设置密码复杂度 💖The Begin💖点点关注,收藏不迷路💖 1.1 可信IP地址访问控制 当您在创建用户时使用’%作为主机部分,…

136.乐理基础-旋律音程、和声音程、自然音程、变化音程

内存参考于:三分钟音乐社 上一个内容:135.乐理基础-半音是小二度吗?全音是大二度吗?三全音-CSDN博客 上一个内容里练习的答案: 旋律音程 旋律音程指的是音程中两个音,一前一后,有先后顺序依次…

autocrlf和safecrlf

git远程拉取及提交代码,windows和linux平台换行符转换问题,用以下两行命令进行配置: git config --global core.autocrlf false git config --global core.safecrlf true CRLF是windows平台下的换行符,LF是linux平台下的换行符。…

鸿蒙系统的开发与学习:一、安装工具与处理报错

前言: 鸿蒙系统的学习与记录。 1 、使用开发工具:deveco-studio 1)这个是工具的安装 2)这个是工具包,里面包含了 obpm,如果你装不上这个,可以使用工具包内部的 2、安装 官方安装教程&#xff…