如果你是从命令式框架(如 Android SDK 或 iOS UIKit)转到 Flutter,你需要开始从新的视角思考应用程序开发。

你可能存在的许多假设不适用于 Flutter。例如,在 Flutter 中,从头开始重建部分 UI 而不是修改它,这是可以的。Flutter 的速度足够快,即使在需要时,它也能在每一帧都这样做。

Flutter 是声明式的。这意味着 Flutter 构建其用户界面以反映应用程序的当前状态。

A mathematical formula of UI = f(state). 'UI' is the layout on the screen. 'f' is your build methods. 'state' is the application state.

当应用程序的状态改变时(例如,用户在设置屏幕中切换了一个开关),你改变状态,这会触发用户界面的重绘。没有命令式地改变 UI 本身(如 widget.setText)——你改变状态,UI 会从头开始重建。

入门指南中阅读更多关于 UI 编程的声明式方法。

声明式 UI 编程风格有许多优点。值得注意的是,对于 UI 的任何状态,只有一条代码路径。你只需描述一次任何给定状态下 UI 应该是什么样子,仅此而已。

起初,这种编程风格可能不像命令式风格那样直观。这就是为什么本节在此。请继续阅读。