RN-效能優化 (一)
前人種樹後人乘涼
原文地址
一、非同步逐層渲染。
React Native 雖然一直標榜媲美Native的體驗,但實際使用下來,其渲染性還是非常低效,基於ScrollView和ListView兩大容器,在渲染上,相當於web端的table佈局,需要等整個大table渲染完成才顯示頁面,也就是說,當容器內有大量的子元素,其白屏時間會非常長。
二、實現shouldComponentUpdate方法
如上第一點,逐層渲染提升開啟時間,但是也會導致component重複渲染,也就是執行了大量無用的diff演算法。雖然React裡引以為傲的diff演算法非常高效,但是執行數量達到一定程度後,也會帶來非常大的影響。那麼可使用shouldComponentUpdate來控制component的渲染次數。
如果確定該元件渲染完後 無需再次更新 ,即這個元件是一個 靜態元件 ,那麼可以直接return false
shouldComponentUpdate(){
return false
}
三、使用setNativeProps方法
setNativeProps方法可以理解為web的直接修改dom。使用該方法修改View、Text等RN自帶的元件,則不會觸發元件的componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate等元件生命週期中的方法。
建議頻繁更新的操作,如slider、tabs切換等拖曳操作時,使用setNativeProps來更新屬性,會獲得意想不到的效能體驗。
//修改文字輸入框的 屬性值
this.refs.textInputRefer.setNativeProps({
editable:false
});
//修改文字輸入框的 style
this.refs.text2.setNativeProps({
style:{
color:'blue',
fontSize:30
}
});
四、不要使用陰影效果
React Native 裡面的 shadow相關的樣式,是非常耗效能的css屬性。這在web上,以前android 2.0年代,也是一樣耗效能的css屬性之一。如果需要使用陰影效果,建議使用圖片來代替反而效能更好一些。
五、最小化DOM
React Native裡虛擬dom結構越複雜,則越低效。如果層級結構大於5級,則要考慮下優化了。這沒啥技巧,純靠經驗及硬實力。
六、元件粒度化
如何更好的劃分元件粒度,這需要合理的對元件進行更細粒度的劃分,區分出靜態元件及動態元件。
相關文章
- Mysql效能優化一MySql優化
- spark效能優化(一)Spark優化
- oracle 效能優化(一)Oracle優化
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- Android效能優化——程式碼優化(一)Android優化
- 【前端效能優化】vue效能優化前端優化Vue
- Oracle效能優化視訊學習筆記-效能優化概念(一)Oracle優化筆記
- 效能優化漫談之一優化
- 來,聊一聊效能優化優化
- 【MySQL】效能優化之 order by (一)MySql優化
- ORACLE SQL效能優化系列 (一)OracleSQL優化
- informix的效能優化(之一)ORM優化
- 一個效能優化的案例優化
- Android效能優化筆記(一)——啟動優化Android優化筆記
- 效能優化優化
- 效能優化指南:效能優化的一般性原則與方法優化
- 效能優化案例-SQL優化優化SQL
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- 一次 Flutter WebView 效能優化FlutterWebView優化
- JVM效能優化 (一) 初識JVMJVM優化
- 記一個效能優化問題優化
- ? 記一次前端效能優化前端優化
- Linux效能優化實戰(一)Linux優化
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- Android效能優化----卡頓優化Android優化
- 前端效能優化 --- 圖片優化前端優化
- [效能優化]DateFormatter深度優化探索優化ORM
- MySQL 效能優化之索引優化MySql優化索引
- Web效能優化:圖片優化Web優化
- MySQL 效能優化之SQL優化MySql優化
- Android效能優化篇之計算效能優化Android優化
- mysql效能優化MySql優化
- Redis 效能優化Redis優化
- 效能優化有感優化
- react效能優化React優化
- javascript效能優化JavaScript優化
- Javascript 效能優化JavaScript優化
- php效能優化PHP優化