import-on-visibility について
import-on-visibilityは、コンポーネントがビューポートに入ってからモジュールを読み込むフロントエンドの手法を解説するガイドです。初期ロードを抑えたい開発者向けに、適用場面や制約、読み込み中の表示方法を説明します。
主な機能
- 01表示時にコンポーネントを読み込み
- 02IntersectionObserverの利用
- 03可視性読み込みライブラリの利用
- 04モジュール読み込み中の代替表示
- 05不適切な適用場面の説明
活用シーン
- 01画面下部のコンポーネントを遅延読み込み
- 02スクロール時に画像やウィジェットを読み込み
- 03ページの初期ロードを軽減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ patternsdev/ skills --skill import-on-visibilityインストール後、Claude Code で/import-on-visibilityを入力して読み込まれたか確認します。
詳細
表示時にインポート
ユーザー操作だけでなく、初期ページでは表示されないコンポーネントを使うこともよくあります。たとえば、ビューポート内に直接表示されていない画像を遅延読み込みし、ユーザーが下にスクロールしたときに読み込む方法があります。
すべての画像をすぐにリクエストしないことで、初期読み込み時間を短縮できます。コンポーネントにも同じ方法を使えます。コンポーネントが現在ビューポート内にあるかどうかを確認するには、IntersectionObserver APIを使うか、react-lazyloadやreact-loadable-visibilityなどのライブラリを使って、アプリケーションに表示時のインポートを手早く追加できます。
使用する場面
- 初期ページでは表示されないコンポーネント(例:スクロールしないと見えないコンテンツ)に使用します
- ユーザーのスクロールに合わせて画像、ウィジェット、または負荷の高いコンポーネントを遅延読み込みするのに便利です
使用しない場面
- すぐにレンダリングする必要があるファーストビューのコンテンツでは使用しません。読み込みを遅らせると、目に見えるレイアウトシフトが発生し、LCP が遅くなります
- 遅延読み込みによるオーバーヘッドが、削減できる負荷を上回るほど軽量なコンポーネントでは使用しません
- SEO にとって重要で、初期 HTML に含める必要があるコンテンツでは使用しません
手順
IntersectionObserverAPI を使って、コンポーネントがビューポートに入ったことを検知します- 手早く実装するには、
react-lazyloadやreact-loadable-visibilityなどのライブラリを使います - モジュールの読み込み中に表示するローディング用のフォールバックコンポーネントを用意します
詳細
コンポーネントが画面にレンダリングされると、react-loadable-visibilityはその要素が画面に表示される状態かどうかを検知します。その後、モジュールのインポートを開始し、その間はユーザーにローディング用コンポーネントを表示します。
このフォールバックコンポーネントにより、アプリケーションがフリーズしたわけではないことをユーザーに伝えられます。モジュールの読み込み、解析、コンパイル、実行が完了するまで、少し待つだけです。
ソース
コメント
Markdown 対応