Flutter 狀態(tài)管理

Dart | 什么是Stream
Flutter | 狀態(tài)管理探索篇——Scoped Model(一)
Flutter | 狀態(tài)管理探索篇——Redux(二)
Flutter | 狀態(tài)管理探索篇——BLoC(三)
Flutter | 狀態(tài)管理拓展篇——RxDart(四)
Flutter | 狀態(tài)管理特別篇 —— Provide
關(guān)于Provide,上文評(píng)論中說(shuō)到官方已棄用,推薦使用:https://github.com/rrousselGit/provider

[譯]讓我來(lái)幫你理解和選擇Flutter狀態(tài)管理方案
這篇推薦使用BLoC加Redux

第三方開(kāi)源的bloc庫(kù):bloc,flutter版本的叫flutter_bloc庫(kù),官方文檔:bloc官方文檔

在項(xiàng)目中使用flutter_bloc,在pubspec.yaml中添加引用依賴:

dependencies:  
flutter_bloc: ^0.18.2
equatable: ^0.2.6

flutter_bloc自動(dòng)引用依賴bloc,bloc又引用依賴rxdart和meta。
equatable好像重載了==,用來(lái)對(duì)比類實(shí)例。


唉,太多選擇反而不好,都不知道選擇哪種。
用了一下fish-redux放棄了,實(shí)在是太重太麻煩。
目前的選擇是先暫時(shí)學(xué)習(xí)bloc吧。

bloc的本質(zhì)


狀態(tài)管理的目的就是為了讓界面與業(yè)務(wù)分離。
界面根據(jù)state來(lái)顯示,有操作時(shí)發(fā)出Action或者Event,而不處理實(shí)際 的業(yè)務(wù),業(yè)務(wù)交給上層處理。
bloc在界面中有操作發(fā)生時(shí)使用dispatch發(fā)出Event事件,fish-redux也是類似使用dispatch,只不過(guò)發(fā)出的叫Action動(dòng)作而已。
當(dāng)dispatch發(fā)出事件時(shí)mapEventToState即可收到事件,此時(shí)將event根據(jù)業(yè)務(wù)轉(zhuǎn)換為state,state會(huì)傳遞回給界面進(jìn)行顯示。
bloc模塊其實(shí)就是類似mvvm中的ViewModel,負(fù)責(zé)所有業(yè)務(wù)的處理。
flutter_bloc+bloc庫(kù)內(nèi)部封裝了stream和RxDart來(lái)實(shí)現(xiàn)BLoC,所以直接使用這個(gè)庫(kù)就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容