2. 【文档讲解】什么是声明式UI

3-3 【文档讲解】什么是声明式UI

声明:Flutter专栏文档均来自慕课网
https://coding.imooc.com/class/321.html

什么是声明式UI

  • 为什么是声明式UI?
  • 如何在声明性框架中更改UI?

Flutter采用了声明性UI布局方式,为了帮助大家快熟上手,本节我们来学习什么是声明式UI,以及它和我们常用的命令式UI的异同。

为什么是声明式UI

从Win32到Web在到Android和iOS的框架通常使用命令式的UI编程风格。 这可能是我们最熟悉的样式 - 你手动构建全功能UI实体(如UIView或等效实体),然后在UI更改时使用方法对其进行变更。

为了减轻开发人员在各种UI状态之间转换的编程负担,Flutter让开发人员描述当前的UI状态,并切不需要关系它是如何过渡到框架。

虽然声明式UI能帮我们减轻很多负担,但大家要将布局的思维方式要转变过来。

如何在声明性框架中更改UI?

下面是个简单的例子:

avatar

为了将上图左侧样式改变成右边样式,在命令式样式中,我们通常会获取到ViewB的实例,然后改变其颜色,然后将启动的元素移除,在添加ViewC c3:

// Imperative style
b.setColor(red)
b.clearChildren()
ViewC c3 = new ViewC(...)
b.add(c3)

在声明式UI中,视图配置(例如Flutter的widget)是不可变的,并且只是轻量级的“蓝图”。 要更改UI,Widget会在自身上触发重建(最常见的是通过在Flutter中的StatefulWidgets上调用setState())并构造一个新的Widget子树:

// Declarative style
return ViewB(
    color: red, 
    child: ViewC(...),
)

这里,Flutter构建新的Widget实例,而不是在UI更改时改变旧实例b。 该框架使用RenderObjects管理传统UI对象的许多职责(例如维护布局的状态)。 RenderObjects在帧之间保持不变,Flutter的轻量级Widgets告诉框架在状态之间改变RenderObjects,接下来Flutter框架会处理其余部分。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国庆后面两天在家学习整理了一波flutter,基本把能撸过能看到的代码都过了一遍,此文篇幅较长,建议保存(star...
    Nealyang阅读 4,453评论 1 17
  • 目录 一、Flutter 为何使用Dart开发语言二、Flutter的UI系统1.特点2.架构简介2.1 Flut...
    十拿九稳啦阅读 3,892评论 3 28
  • Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可...
    Cat9527阅读 783评论 0 1
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,375评论 0 17
  • 生命有什么意义呢?如果活着就是为了追求成功和财富和名声,那么一个人很努力但是他就是什么也做不好,他并不成功...
    小说推荐dhy阅读 397评论 1 4

友情链接更多精彩内容