为什么说Flutter是革命性的?(3)

Flutter包括很多用于布局的widgets,不仅仅含有列,还包括行、网格、列表等。 此外,Flutter还有一个独特的布局模型,我们称之为用于滚动的“长条布局模型 (sliver layout model)”。Flutter中的布局非常快,可用于滚动。试想一下,滚动必须如此快速平滑,以至于让用户感觉当他们在物理屏幕上拖动时,屏幕图像就像和他们的手指相连一样。

通过使用布局进行滚动,Flutter可以实现高级滚动,如下所示。请注意,这些是GIF动画,真正的Flutter应用程序更加平滑。您可以(并且应该)自己运行这些应用程序,请参阅本文末尾的参考资料部分。

(点击放大图像)

为什么说Flutter是革命性的?

(点击放大图像)

为什么说Flutter是革命性的?

在大多数情况下,Flutter仅需一次传递即可完成布局,这意味着布局所花的时间是线性增长的,所以它可以处理大量的widgets。Flutter也可以利用缓存或其他功能来避免重复的布局。

定制设计

因为UI组件现在是应用程序的一部分,你可以添加新的UI组件,并且可以自定义现有的UI组件,以使其具有不同的外观或感觉,或匹配公司的品牌,移动设计的趋势正在与几年前普遍使用的千篇一律的应用程序背离,开始走向让用户愉悦的定制设计。

Flutter配有丰富的可定制的Android、iOSMaterial Design组件(实际上,我们已经被告知Flutter是Material Design中具有最高保真度之一的实现),我们使用Flutter的可定制特点来构建这些组件库,以匹配多个平台上的原生组件的外观和感觉。程序开发人员可以使用相似的可定制性功能进一步调整小组件以满足他们的需求。

更多关于响应式视图

现有的响应式web视图库都引入了虚拟DOM,DOM代表HTML的文档对象模型。JavaScript用DOM提供的API来操纵表现为一个元素树的HTML文档。虚拟DOM是使用编程语言中的对象(在这种情况下为JavaScript)创建的DOM的抽象版本。

在响应式Web视图(由 ReactJS和其他系统实现)中,虚拟DOM是不可变的,每次更改,所有的东西都得重建。系统将虚拟DOM与真正的DOM进行比较,生成一组最小的更改,然后执行这些更改,以更新真正的DOM。最后,平台重新绘制真实的DOM到画布中。

(点击放大图像)

为什么说Flutter是革命性的?

这听起来增加了很多额外的工作,但它是值得的,因为操纵HTML DOM是非常耗费系统资源的

React Native 也做类似的工作,但是是在移动应用程序当中进行的。它会操控移动平台上的原生组件而不是DOM。它构建一个UI组件的虚拟树,与原生组件进行比较,并只更新已更改的部件。

(点击放大图像)

为什么说Flutter是革命性的?

请记住,React Native必须通过桥接器与原生部件进行通信,因此,UI组件的虚拟树可以帮助保持传递桥的最小值,同时还允许使用原生部件。最后,一旦更新了本机部件,平台就会将它们渲染到画布上。

React Native是移动开发的一大进步,并且是Flutter的灵感来源,但Flutter更进一步。

(点击放大图像)

为什么说Flutter是革命性的?

回想一下,在Flutter中,UI组件和渲染器已经从平台中集成到用户的应用程序中。没有系统UI组件可以操作,所以原来虚拟控件树的地方现在是真实的控件树。Flutter渲染UI控件树并将其绘制到平台画布上。这很好,既简单又快。 此外,动画发生在用户空间中,因此应用程序(因此开发人员)可以对其进行更多的控制。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/88624b942a22c5fc084d295ab347fbc9.html