一、Flutter 底层框架梳理

1️⃣Flutter includes a modern reactive framework and a 2 D rendering engine.

Flutter包括一个现代的反应框架和一个2D渲染引擎。

2️⃣窗口小部件Widget

Widget是Flutter应用程序的基础。 Widget是对用户界面的一部分的描述。

当Widget发生变化的时候,例如点击一个按钮部件去改变状态

Widget会根据新状态重建自身。

这节省了开发者的时间,因为UI可以被描述为状态的函数。

当状态发生变化时,我们不必编写额外的代码来单独更新UI。

该框架创建一个差异来确定,差异变化需要去更新渲染树

一、Flutter 底层框架梳理_第1张图片

渲染引擎是自己APP的一部分,我们不需要将UI渲染代码连接到本地平台。

布局和渲染调用比平台特定的调用发生的频率要高得多,就像是移动设备的相机,通过在应用端进行所有渲染工作,flutter可以快速渲染并重新渲染你的Widget,允许丰富的动作和平滑的滚动。这个渲染引擎建在Skia,一个2D图形渲染库和Dart语言,如下图

一、Flutter 底层框架梳理_第2张图片

iOS与安卓平台为我们提供了一个画布,用于放置我们的小部件和渲染引擎,这是提前编译本地代码的好处,尽管他已经为你的应用程序编写了他们所需的设备插件

,比如像相机或者WiFi只要你的平台去调用,flutter应用可以编译并运行在您选择的目标平台上

3️⃣ 热重载

widget检查器和代码自动格式化器,这会减轻你的开发压力,当我们进行更改时,flutter会立即提供有状态的UI重新加载,这是在使用即时编译器的时候,

4️⃣架构,程序本身就是widget构成的

分为有状态以及无状态

一、Flutter 底层框架梳理_第3张图片

less无状态的小部件是不可改变的,这意味着我们在编译以及初始化他们的时候,他们所有的字段都必须是最终的,我们可以在创建小部件的时候传递自定义的属性,比如背景颜色,但是一旦创建,这些属性无法进行改变,无状态的小部件是不可以交互式的;

ful有状态的小部件是可以改变的

一、Flutter 底层框架梳理_第4张图片

你可能感兴趣的:(一、Flutter 底层框架梳理)