React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

最近、中間およびバックエンド プロジェクトを迅速に起動するための react-ant-admin 統合フレームワークを作成しています。多くの問題が発生しますが、最も重要なのはアクセス速度です。 React が Vue のようなルートの遅延読み込みを使用して、ホームページのレンダリングにかかる​​時間を短縮できるかどうか疑問に思います。

そこで、とても便利なホイールを見つけました: @loadable/component

使用

インストール

npm インストール @loadable/component -D
# または糸を使う
糸を追加 @loadable/component -D

ルーティングでどのように使用しますか?

src/router/index.js ファイルに次のように記述します。

「react」からReactをインポートします。
「react-router-dom」から Route、Switch をインポートします。
「./routes」から routerList をインポートします。

const ルーター = () => {
  戻る (
    <スイッチ>
      {ルーターリスト.map((項目) => {
        const { コンポーネント: コンポーネント、キー、パス、...itemProps } = item;
        戻る (
          <ルート
            正確={true}
            キー={キー}
            パス={パス}
            render={(allProps) => <コンポーネント {...allProps} {...itemProps} />}}
          />
        );
      })}
    </スイッチ>
  );
};

デフォルトルーターをエクスポートします。

src/router/routes.jsファイルに次のように記述します。

「@loadable/component」から loadable をインポートします。

const Error404 = loadable(() => import("@/pages/err/404")); // 対応するファイル src/pages/err/404.js
const Home = loadable(() => import("@/pages/home"));
const Demo = loadable(() => import("@/pages/demo"));

const ルーターリスト = [
  {
    パス: "/"、
    キー: "ホーム"、
    コンポーネント: ホーム、
  },
  {
    パス: "/demo",
    キー: "デモ",
    コンポーネント: デモ、
  },
  {
    パス: "*"、
    キー: "404",
    コンポーネント: Error404、
  },
];

デフォルトの routerList をエクスポートします。

src/App.jsファイルに次のように記述します。

「react」からReactをインポートします。
「react-router-dom」から { BrowserRouter を Router としてインポートします };
「./router」からルートをインポートします。
デフォルト関数App()をエクスポートする{
  戻る (
    <ルーター>
      <ルート />
    </ルーター>
  );
}

この時点で、ルートを切り替えるときに js ファイルが動的にロードされるかどうかを確認するページに移動できます。ルートを切り替えた後に js ファイルが読み込まれると、遅延読み込みルートが成功したことを意味します。

読み込み速度の比較

@loadable/componentサーバーの帯域幅は1M、gzip圧縮、ファイルサイズは約2MB、サーバーリクエストの読み込み時間は約4.3秒でした。

ルーティング遅延読み込みを使用します。サーバー帯域幅は 1M、gzip 圧縮、ファイル サイズは約 1MB、サーバー要求の読み込み時間は約 1 秒です。

上記は、React が遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法の詳細です。React の遅延読み込みが読み込み時間を短縮する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Amap を使用した React 実装例 (react-amap)
  • Reactの仮想DOMとdiffアルゴリズムの詳細な説明
  • ファイルのアップロードの進行状況を示す React の例
  • WeChat公式アカウントでReactプロジェクトを実行する方法
  • ReactでCSSをエレガントに書く方法
  • 最も単純な ErrorBoundary コンポーネントをカプセル化して、React 例外を処理する
  • React Fiber構造の作成手順
  • React の 3 つの主要属性における Ref の使用に関する詳細な説明
  • Reactのようなフレームワークをゼロから作成する
  • React useEffect の理解と使用

<<:  ゲーム着物メモ問題の簡単な分析

>>:  よく使われるnginxの書き換えルールの詳細な説明

推薦する

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...

Websocket に基づくシンプルなチャットルームダイアログの実装

この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを...

純粋な CSS を使用してドロップダウン メニューを作成するサンプル コード

導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...

Docker の win ping 失敗コンテナ回避ガイド

win docker-desktopを使ってコンテナ開発に接続し、ネットワーク上で色々試してみたいと...

JavaScript 高度なカスタム例外

目次1. コンセプト1.1 エラーと例外とは何ですか? 1.2 異常の分類2. 例外処理2.1try...

Linux での MySQL 5.7 の導入とリモート アクセス構成

前書き: 最近、私はパートナーとチームを組んで .NET Core プロジェクトに取り組む予定です。...

Dockerディスク容量不足の問題を解決する

Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

vue 要素 el-transfer にドラッグ機能を追加

コア資産管理プロジェクトでは、el-transfer にドラッグ アンド ドロップによる並べ替えと、...

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

jsを使用してスライダーをドラッグする効果を実現します

この記事では、jsでスライダーをドラッグする方法の具体的なコードを参考までに共有します。具体的な内容...

JavaScript配列をツリー構造に変換する方法

1. 需要バックエンドは、フロントエンドがツリー構造(重複データなし)に変換するためのデータを提供し...

DockerコンテナのライフサイクルアーキテクチャとVMとの違いについて詳しく説明します。

コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...