1、使用redux、react-redux侵浸、redux-thunk做全局狀態(tài)管理
- redux三大原則
單一數(shù)據(jù)源:整個(gè)應(yīng)用的state被存儲(chǔ)在一個(gè)對(duì)象數(shù)中,并且這個(gè)對(duì)象數(shù)只存在于唯一的store中氛谜。
State是只讀的:唯一改變state的方法是出發(fā)action掏觉,action是一個(gè)描述已發(fā)生事件的普通對(duì)象。
使用純函數(shù)來(lái)執(zhí)行修改:編寫(xiě)reducer來(lái)描述action如何改變state值漫。 - 使用redux-thunk來(lái)dispatch異步action
- middleware的作用是在action于reducer之間執(zhí)行副作用函數(shù)澳腹,如日志打印(redux-logger),異步函數(shù)(redux-thunk)杨何,他的優(yōu)點(diǎn)在于能夠鏈?zhǔn)降牟迦攵鄠€(gè)中間件酱塔。
2、使用react-native-fast-image作為應(yīng)用圖片加載引擎
- react-native-fast-image使用的原生庫(kù)位SDWebImage(iOS端)危虱、Glide(Android端)羊娃。
- react-native-fast-image能夠很好地控制圖片緩存。
- react-native-fast-image支持gif動(dòng)畫(huà)埃跷。
- react-native-fast-image支持預(yù)加載蕊玷。
- glide會(huì)自動(dòng)裁剪圖片、緩存圖片弥雹、生命周期控制垃帅。能有效圖片列表所需內(nèi)存。
3剪勿、使用context做全局的一些配置更改贸诚,如偏好城市,主題樣式
- 具體參見(jiàn)Context
4厕吉、使用react-native-vector-icons作為圖標(biāo)庫(kù)
- 矢量圖標(biāo)能夠在不同分辨率的手機(jī)上展示一致的效果酱固。
- 減少包體積。
- 占用內(nèi)存小头朱。
- 能夠?yàn)閳D標(biāo)配置不同的主題顏色运悲。
5、使用axios替代fetch作為網(wǎng)絡(luò)請(qǐng)求庫(kù)
- axios支持并發(fā)請(qǐng)求髓窜,fetch需要Promise.all()實(shí)現(xiàn)并發(fā)扇苞。
- axios支持timeout欺殿,fetch需要自己實(shí)現(xiàn)超時(shí)。
- axios支持?jǐn)r截器(請(qǐng)求攔截鳖敷,響應(yīng)攔截)脖苏, fetch不支持。
- axios支持全局配置定踱。
- axios支持請(qǐng)求取消棍潘。