RN-性能优化 (四)
2017-04-25 本文已影响147人
精神病患者link常
前人种树后人乘凉
原文地址
一、优化Component
很多人在定义一个class时都会去继承Component,这并没有错,但是如果一个子组建也继承了Component,那么当父组建render时也会导致子组建的render,怎么解决呢?其实很简单只需要我们的子组建去继承PureComponent即可。个人建议自定义的class都可以去继承PureComponent从而避免不必要的render。
注意子组件需是静态的
二、优化方法的创建
内部方法的定义应该使用
onPress=(()=>{
do something
})
避免创建多个fun
三、善于使用shouldComponentUpdate
通过shouldComponentUpdate的返回结果我们可以去控制什么时候应该render,什么情况应该render。
注意静态组件可以直接
shouldComponentUpdate(){
return false
}
四、使用Animated去处理一些简单的动画
我想应该会有很多小伙伴遇到这样的问题,切换不同的state改变某个view的height/width,是不是很多小伙伴都会用state去控制height/width。并不是说这样是完全不对,只是这样耗费性能,因为你的state的改变会触发render,而对于一个过程来说,这样的render次数是我们不愿意看到的,那该怎么解决呢?其实大家可以使用Animated去代替state,Animated封装了一系列优雅的处理函数,完全可以实现你想要的效果,使用方法官方有介绍