狀態管理中的宣告式程式設計思維

如果你是從命令式框架(例如 Android SDK 或者 iOS UIKit)轉到 Flutter 應用,那麼,你需要開始從一個新的角度來考慮 app 開發了。

因此,很多在命令式框架下的假設可能並不適用於 Flutter。例如,在 Flutter 應用中這是可行的,重新建構你的部分介面,而不是直接去修改它。如果有需要的話,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.

當你的 Flutter 應用的狀態發生改變時(例如,使用者在設定介面中點選了一個開關選項)你改變了狀態,這將會觸發使用者介面的重繪。去改變使用者介面本身是沒有必要的(例如 widget.setText )—你改變了狀態,那麼使用者介面將重新建構。

宣告式 UI 介紹 中你可以閱讀更多有關宣告式程式設計思維的資訊。

宣告式的程式設計風格有許多好處。值得注意的是,使用者介面任何狀態的改變都只有一種編碼途徑。一旦給定任意狀態,你就描述了使用者介面應該長什麼樣,並且它就是這樣。

剛開始的時候,這種編碼風格可能看起來不像命令式的那麼直觀。這也是本章為什麼出現在這的原因。