Fabulous是一個現代的聲明性UI框架,用於在.NET中製作跨平台移動和桌面應用程序。
它的目的是通過結合表達性UI語法,簡單且健壯的模型視圖 - 上升(MVU)體系結構和功能性編程來為您帶來豐富的開發體驗和對代碼的信心。
可以在docs.fabulou.dev上找到神話般的完整文檔。
其他有用的鏈接:
此外,我們還有神話般的Discord服務器,您可以在其中提出任何神話般的相關問題。
我們認為,聲明性的UI,功能編程和MVU州管理非常適合應用程序開發。
Fabulous將幫助您快速地創建移動和桌面應用程序,並充滿信心地歸功於聲明性的UI和MVU架構,所有這些都是單語言:F# - 一種功能性編程語言。
神話般的旨在通過低記憶消耗和有效的視圖擴散機制來表現。
請注意,神話般的本身不會提供任何UI渲染。您需要將其與另一個框架相結合:
如果無法正確完成,典型的UI開發可能是一場噩夢。
它通常是在一個地方創建的,然後根據需求和用戶在做什麼而在這里和那裡進行突變。相關的UI最終在多個地方出現,因此很難在精神上思考所有可能性。直到由於意外用戶流動而導致的不可避免的種族條件或錯誤。
借助Swiftui啟發了其聲明性的UI,很棒的是UI更容易推理。
組件的UI在一個地方定義,每當該組件的狀態更改時,Fabulous都會稱呼它。
您無需考慮如何突變UI,Fabulous將會處理它,以始終匹配所需的最新UI。
/// A simple Counter app made with Fabulous.MauiControls
type Model =
{ Count : int }
type Msg =
| Increment
| Decrement
let view model =
Application (
ContentPage (
" Counter app " ,
VStack ( spacing = 16. ) {
Image ( Aspect.AspectFit , " fabulous.png " )
Label ( $ " Count is {model.Count} " )
Button ( " Increment " , Increment )
Button ( " Decrement " , Decrement )
}
)
)
MVU使這些狀態之間的每個狀態和過渡明確。
您無需擔心可能導致無效狀態的意外操作,這會崩潰該應用程序。
相反,您可以非常輕鬆地使用F#記錄和歧視工會類型對應用程序的狀態或組件的狀態進行建模。
開始時,Fabulous將初始化狀態。然後,當發送消息時,神話般的消息將使您從一個狀態過渡到另一個狀態,給定特定的消息。
如果同時收到幾條消息,Fabulous會排隊,讓您正確更新狀態。
let init () =
{ Count = 0 }
let update msg model =
match msg with
| Increment -> { model with Count = model.Count + 1 }
| Decrement -> { model with Count = model.Count - 1 }
最後,鑑於MVU的功能性質,單位測試應用程序的每種可能狀態非常簡單。
[<Test>]
let ``When clicking the Increment button , increment the count by one`` () =
let previousState = { Count = 10 }
let expectedState = { Count = 11 }
let actualState = App.update Increment previousState
actualState |> should equal expectedState
.NET是Microsoft的一個非常成熟且廣泛的框架。它可以在任何設備和平台上運行,非常有效,並且具有龐大的開源和許可庫,插件和其他框架的生態系統。
您將能夠通過直接在神話般的應用中使用第三方軟件包從.NET生態系統中受益。
向我們展示您的支持的最簡單方法是給項目一個明星。
您也可以通過成為GitHub贊助商計劃的讚助商來支持我們。
這是支持使神話般的Dotnet最好的宣言UI框架所做的所有努力的絕佳方法。
如果您需要支持,請參見下面的商業支持部分。
您是否找到了一個錯誤或建議如何增強神話般的神話般?打開一個問題,我們將盡快看一下。
您想用PR做出貢獻嗎?始終歡迎PR,只需確保從正確的分支(主)創建它,然後遵循貢獻者指南即可。
對於更大的變化,或者如果有疑問,請確保談論您對團隊的貢獻。通過問題,討論或使用Discord服務器與團隊聯繫。
如果您希望我們為您提供:
隨時與我們聯繫:[email protected]