起きたこと
・ react-navigation を 2.0.1にした => タブの切り替えが重い。。(特にandroid)。。体感1~2secかかるようになった。
結論
・ バグでした。
- 今すぐ2.1.0にバージョンあげましょう
https://github.com/react-navigation/react-navigation/issues/4412
とはいえ、それ以外にもパフォーマンスを改善するためにしたことがあるので以下記録として。。。
やったこと
・ 可能な限りstateless function を使う
- listの中はもちろんですが、ボタンやcontainer的に使っているコンポネントも可能な限りstatelessに。
- 無理な場合で、pureComponentにできるものはPureComponentに
・ listはFlatListを使用。
・ navigationOptionでlazyLoad={true}に変更
・ view コンポネントで不要な要素は消す。必要以上にnestしない
所感
・ stateless function にするのは体感値ベースでもかなり変わります。