React Native 效能優化建議

2021-07-26 18:22:09 字數 904 閱讀 6419

react native 雖然一直標榜媲美native的體驗,但實際使用下來,其渲染性還是非常低效,基於scrollview和listview兩大容器,在渲染上,相當於web端的table布局,需要等整個大table渲染完成才顯示頁面,也就是說,當容器內有大量的子元素,其白屏時間會非常長。

如何讓react native做到像web端邊渲染邊載入?可以採用非同步渲染的方式,使用requestanimationframe 或 settimeout 定時將單個元件push進scrollview容器。

基於這個原理,寫了個逐層渲染的元件:react-progressive

如上第一點,逐層渲染提公升開啟時間,但是也會導致component重複渲染,也就是執行了大量無用的diff演算法。雖然react裡引以為傲的diff演算法非常高效,但是執行數量達到一定程度後,也會帶來非常大的影響。那麼可使用shouldcomponentupdate來控制component的渲染次數。

如何做? 1

2

shouldcomponentupdate()

});

效能分析工具:react.addons.perf

react native 裡面的shadow相關的樣式,是非常耗效能的css屬性。這在web上,以前android 2.0年代,也是一樣耗效能的css屬性之一。如果需要使用陰影效果,建議使用來代替反而效能更好一些。

react native裡虛擬dom結構越複雜,則越低效。感覺rn的渲染效能,和以前android2.x時代沒多大區別,如果層級結構大於5級,則要考慮下優化了。這沒啥技巧,純靠經驗及硬實力。

如何更好的劃分元件粒度,這需要合理的對元件進行更細粒度的劃分,區分出靜態元件及動態元件。

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

React native 開發APP優化篇(一)

1 應盡量少發起請求,能免就免 2 應盡量少的使用this.setstate,多次render除了低效之外,還容易導致一些莫名的bug 3 如果乙個頁面 如首頁 有多個請求,那麼推薦使用promise.all進行請求合併,並且統一處理this.setstate,做到僅僅一次render 4 全面使用...

效能優化 電量優化

使用battery historian來監測電量的情況,battery historian時google的乙個開源專案 具體安裝過程參見 當出現下列畫面,說明已經開啟 其開啟成功以後,訪問網頁如下所示 說明 這裡使用的是一台國外的vps伺服器,原本是想在本地虛擬機器實驗的,一直連線超時,就換成了vp...