开始以声明式方式思考

如果您是从命令式框架(例如 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 在任何给定状态下应该如何显示一次,然后就完成了。

起初,这种编程风格可能不像命令式风格那样直观。这就是本节存在的原因。继续阅读。