美文网首页
声明式UI介绍

声明式UI介绍

作者: 乌龟漫漫 | 来源:发表于2020-03-27 07:33 被阅读0次

本文介绍描述了 Flutter 所使用的声明式 UI 和许多其他 UI 框架所使用的命令式 UI 的概念性差异

为什么是声明式 UI?

从 Win32 到 Web 再到 Android 和 iOS,框架通常使用一种命令式的编程风格来完成 UI 编程。这可能是你最熟悉的风格 — 你手动构建一个全功能的 UI 实例,比如一个 UIView 或其他类似的,在随后 UI 发生变化时,使用方法或 Setter 修改它。

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

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

下面是一个简单的例子:



为了将上图左侧的样式改变成右侧样式,在命令式风格中,通常需要获取到ViewB的实例,然后改变其颜色,然后将其子元素移除,再添加ViewC c3

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

在声明式风格中,视图配置(如Flutter的Widget)是不可变的,它只是轻量的“蓝图”。要改变UI样式,widget会在自身上触发重建(在 Flutter 中最常见的方法是在 StatefulWidgets 组件上调用 setState())并构造一个新的Widget子树。

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

在这里,当用户界面发生变化时,Flutter 不会修改旧的实例 b,而是构造新的 widget 实例。框架使用RenderObjects 管理传统 UI 对象的职责(比如维护布局的状态)。 RenderObjects 在帧之间保持不变, Flutter 的轻量级 widget 通知框架在状态之间修改 RenderObjects, Flutter 框架则处理其余部分。

相关文章

  • 声明式UI介绍

    本文介绍描述了 Flutter 所使用的声明式 UI 和许多其他 UI 框架所使用的命令式 UI 的概念性差异 为...

  • Flutter入门知识—声明式UI

    重点: 1、Flutter采用了声明式UI的布局方式,什么是声明式UI? 2、声明式UI和命令式UI的异同? Fl...

  • 3.3、Flutter:组件Widget

    一、概述 声明式UI 和 响应式UI Flutter的页面编写风格,属于声明式UI风格这与iOS的 UIKit响应...

  • 给移动开发者的声明式 UI 入门手册

    前言 我会用两篇文章来讲透声明式 UI,分别是《给移动开发者的声明式 UI 入门手册》,《UI 开发的革命,声明式...

  • SwiftUI 探索 - 状态和数据流

    SwiftUI是iOS13新出的声明式UI框架,将会完全改变以前命令式操作UI的开发方式。此文章主要介绍Swift...

  • 声明式UI

    命令式UI:构建全功能UI实体,然后在UI更改时使用方法对其进行变更。 声明式UI:描述当前的UI状态,并且不需要...

  • 声明式 UI

    Flutter 采用了声明式 UI 布局方式。 为什么是声明式 UI 从 Win32 到 Web 再到 Andro...

  • Jetpack Compose 核心概念(一)

    1. 命令式 UI 和声明式 UI 1.1 命令式 UI 在传统的 XML UI 系统中,创建一个 UI 的逻辑往...

  • Litho学习--Litho 简介

    背景介绍 Litho 是 FaceBook 2017年上半年开源的声明式UI渲染框架。 为什么 Facebook ...

  • Flutter UI布局方式

    Flutter采用声明式UI布局方式 为什么是声明式UI 从win32到web再到Android和iOS的框架通常...

网友评论

      本文标题:声明式UI介绍

      本文链接:https://www.haomeiwen.com/subject/scykuhtx.html