時折動作が重い React Native アプリの速度改善をいくつか試している中で「react-navigation-heavy-screen」というライブラリを見つけたのでまとめ。
ライブラリの説明文にも「React Nativeで重い画面を最適化して、React Navigation のスタックと遅延を防ぎます。」とありました。
GitHub のページはこちらから。
GitHub – nandorojo/react-navigation-heavy-screen: ⚡️Optimize heavy screens to prevent lags during React Navigation transitions.
https://github.com/nandorojo/react-navigation-heavy-screen
ライブラリのインストールには下記のコマンドを実行します。
npm install react-navigation-heavy-screen --save expo install react-native-reanimated
実装サンプルコードは下記のとおりです。
import React from 'react'
import { OptimizedHeavyScreen } from 'react-navigation-heavy-screen'
const Screen () => (
<OptimizedHeavyScreen>
<View>
......
</View>
</OptimizedHeavyScreen>
);
export default Screen
現在のコンポーネントを <OptimizedHeavyScreen> で囲えばOKとのことです。
なお、Props として、読み込み中に代わりに表示されるコンポーネントを placeholder で設定したりできます。
が、実際に上記を追加してアプリを実行したところ、アプリの画面に何も表示されなくなりました…!
現時点では何を間違えたのかまだわからないので、他のサンプルコードを探しながら原因を追究していきたいと思います。
何かわかったら、また記事にまとめるつもりです。
以上、React Native で動作の重い画面を最適化してくれるライブラリ「react-navigation-heavy-screen」のご紹介でした。
今回の記事は参考にならないと思いますが…ライブラリの紹介に関しては参考になれば幸いです。