前人種樹后人乘涼
原文地址
一、優(yōu)化Component
很多人在定義一個(gè)class時(shí)都會(huì)去繼承Component,這并沒有錯(cuò),但是如果一個(gè)子組建也繼承了Component哪廓,那么當(dāng)父組建render時(shí)也會(huì)導(dǎo)致子組建的render,怎么解決呢初烘?其實(shí)很簡單只需要我們的子組建去繼承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去處理一些簡單的動(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)你想要的效果狸眼,使用方法官方有介紹