RN-性能優(yōu)化 (四)

前人種樹后人乘涼
原文地址

一、優(yōu)化Component

很多人在定義一個(gè)class時(shí)都會(huì)去繼承Component,這并沒有錯(cuò),但是如果一個(gè)子組建也繼承了Component,那么當(dāng)父組建render時(shí)也會(huì)導(dǎo)致子組建的render,怎么解決呢?其實(shí)很簡(jiǎn)單只需要我們的子組建去繼承PureComponent即可。個(gè)人建議自定義的class都可以去繼承PureComponent從而避免不必要的render。

注意子組件需是靜態(tài)的

二、優(yōu)化方法的創(chuàng)建

內(nèi)部方法的定義應(yīng)該使用

onPress=(()=>{
  do something
})

避免創(chuàng)建多個(gè)fun

三、善于使用shouldComponentUpdate

通過shouldComponentUpdate的返回結(jié)果我們可以去控制什么時(shí)候應(yīng)該render,什么情況應(yīng)該render。

注意靜態(tài)組件可以直接

shouldComponentUpdate(){
  return false
}

四、使用Animated去處理一些簡(jiǎn)單的動(dòng)畫

我想應(yīng)該會(huì)有很多小伙伴遇到這樣的問題,切換不同的state改變某個(gè)view的height/width,是不是很多小伙伴都會(huì)用state去控制height/width。并不是說這樣是完全不對(duì),只是這樣耗費(fèi)性能,因?yàn)槟愕?strong>state的改變會(huì)觸發(fā)render,而對(duì)于一個(gè)過程來說,這樣的render次數(shù)是我們不愿意看到的,那該怎么解決呢?其實(shí)大家可以使用Animated去代替state,Animated封裝了一系列優(yōu)雅的處理函數(shù),完全可以實(shí)現(xiàn)你想要的效果,使用方法官方有介紹

最后編輯于
?著作權(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)容

  • 前幾天看了某位大神的rn視頻感觸頗深,rn的性能優(yōu)化道路雖然很艱難,但希望總會(huì)是有的。 1.優(yōu)化Component...
    ShunQ_Wang閱讀 7,610評(píng)論 7 19
  • 1. 屏幕適配 RN布局使用的單位是dp,而開發(fā)人員從設(shè)計(jì)稿最方便獲取的是px,所以需要一個(gè)工具類把px轉(zhuǎn)成dp,...
    哪吒鬧海全靠浪閱讀 2,186評(píng)論 0 3
  • TextInput是一個(gè)允許用戶在應(yīng)用中通過鍵盤輸入文本的基本組件。本組件的屬性提供了多種特性的配置,譬如自動(dòng)完成...
    亭止閱讀 3,387評(píng)論 1 0
  • 公司打算用react-native開發(fā)APP,初始RN遇到了很多坑,搭建了一個(gè)小的項(xiàng)目框架,結(jié)合redux根據(jù)公司...
    45b645c5912e閱讀 821評(píng)論 0 5
  • 一花一世界,一葉一追尋,一曲一場(chǎng)嘆,一生嗅一春 ____題記 看到世界的...
    喜舊之人53閱讀 422評(píng)論 0 5

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