微信小程序應用狀态管理工具Redux VS Mobx
發表時(shí)間:2021-4-30
發布人(rén):融晨科技
浏覽次數:145
一、微信小程序自身的(de)應用狀态是(shì)怎樣定義的(de)呢?
page({
data: {
item: '',
isLoading: true
},
onLoad: function(){
this.setData({
isLoading: false
})
}
})
二、爲(wéi / wèi)什麽使用應用狀态管理工具?
同一數據,一次請求,應用全局共享。
MVVM架構開發中清晰的(de)數據流向——單向數據流。
将分散在(zài)不(bù)同頁面的(de)數據與應用狀态統一管理,共享數據與狀态變化。
适應組件化、模塊化開發的(de)數據結構,提高代碼重複使用率、提高開發效率。
三、應用狀态管理工具有哪些?
前端MVVM架構基礎庫有很多,目前主流的(de)有React、Vue、Angular,不(bù)同的(de)庫有不(bù)同的(de)應用狀态管理方案,比如React常用的(de)Flux,Redux,Mobx,Vue的(de)Vuex,Angular的(de)ngrx/store,Redux并不(bù)是(shì)React的(de)專屬,而(ér)是(shì)針對Redux有最優的(de)解決方案,當然Redux同樣也(yě)能移植到(dào)其他(tā)框架使用,比如可以(yǐ)在(zài)微信小程序中使用。
四、微信小程序如何選擇應用狀态管理工具庫?
目前微信有移植的(de)Redux與Mobx來(lái)作爲(wéi / wèi)應用狀态管理,Redux 和(hé / huò) Mobx 都是(shì)當下比較火熱的(de)數據流模型,一個(gè)背靠函數式,似乎成爲(wéi / wèi)了(le/liǎo)開源界标配,一個(gè)基于(yú)面向對象,低調的(de)前行。
函數式 vs 面向對象
函數式的(de)優點:
将數據和(hé / huò)處理邏輯分離,代碼更加簡潔,模塊化,可讀性好
易測試、易維護,測試環境容易模拟
邏輯代碼可複用性強
相對比面向對象的(de)編程:
javascript的(de)弱類型,表明它基于(yú)對象,不(bù)适合完全函數式表達。
數學思維和(hé / huò)數據處理适合用函數式,而(ér)業務邏輯的(de)處理适合用面向對象。
邏輯嚴謹的(de)函數式編程相當完美,但爲(wéi / wèi)了(le/liǎo)實現具體業務功能不(bù)得不(bù)寫更多細粒度代碼來(lái)實現,而(ér)面向對象的(de)方式更爲(wéi / wèi)簡潔和(hé / huò)靈活。
Redux vs Mobx
那麽具體到(dào)這(zhè)兩種模型,又有一些特定的(de)優缺點呈現出(chū)來(lái)。
先來(lái)看 Redux 的(de)特點: