文章目录前言思维转变指令性结论总结前言Flutter在过去两年中迅速崛起,并已成为移动开发中不被重视的力量。
如果您是一位追求IOS / Android的程序员,我认为有必要尝试一下。
我从事Android开发已经有几年了。
前一段时间,该公司大力推广Flutter技术,因此很幸运能尝试一下。
我一直认为,善于总结是不断改进的唯一法宝,因此您可以不断超越同行,而不会被裁员,因此,我在这里提供一些技巧,以帮助您快速掌握Flutter的个人经验。
实际上,对于移动开发人员而言,学习Flutter最重要的事情就是改变他们的思维方式。
众所周知,Flutter定位为跨平台的UI工具箱,因此UI是学习Flutter的主要矛盾。
以下是官方定义:FlutterisGoogle的UI工具包,用于从单一代码库构建用于移动,Web和桌面的漂亮,本机编译的应用程序。
Flutter的UI设计使用声明式样式,而Android / Ios使用命令式样式。
因为我们习惯了命令式风格,所以如果我们突然转向Flutter,我们将始终以命令式思维进行思考,并且会遇到更大的麻烦。
只要您改变了想法,对于有经验的Android / Ios开发人员来说,Flutter就会变得非常简单。
那么什么是声明式风格?命令式是什么?谈论它是没有用的,示例开始...假设有一个非常简单的要求:UI上有一个框,根据不同的情况需要显示不同的颜色,如下图所示:下面,我们以命令式和声明式方式实现以上内容。
要求,看有什么区别。
上面的伪代码表明,在不同条件下,我们可以通过调用View对象的setColor方法来更改颜色属性,以满足更改其颜色的需求。
可以看出,命令式样式通过修改UI对象的状态来更改UI显示样式,这意味着UI对象必须是可更改的,这要求开发人员负责维护这些UI对象的状态。
声明式上方的伪代码表明,在不同条件下,我们将构建一个具有不同颜色的新View对象,以实现更改其颜色的需要。
可以看出,声明式样式可以使View对象成为不可变的对象。
每次更改UI时,都会构造一个新的UI对象,而不是修改其属性。
结论因此,在使用Flutter构建UI时,不要考虑修改UI对象的状态(属性)。
例如,如果UI状态更改,则Textview的内容从Iloveandroid更改为Iloveflutter,请不要考虑调用Textview对象的方法来对其进行修改。
文本将使用Iloveflutter作为文本构造一个新的Textview对象。
将其余部分留给Flutter框架,这将帮助您重新渲染必要的部分。
在Flutter中,状态和UI(窗口小部件)是分开的。
当我们想要刷新UI时,我们只需要准备状态,然后Flutter框架将使用这些新状态来重建新的Widget。
让我们通过一个示例来体验以下代码,并构建一个非常简单的页面,如下所示。
由于isLoveAndroid是真实的,因此Flutter会构建一个Text控件,为我们显示IloveAndroid。
结束语只要您改变了思路,使用Flutter来构建UI时就会非常顺畅,尤其是在设计复杂的UI时,您不会陷入死胡同。