如果你是從命令式框架(如 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 應該是什麼樣子,僅此而已。

起初,這種程式設計風格可能不像命令式風格那樣直觀。這就是為什麼本節在此。請繼續閱讀。