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の書き換えルールの詳細な説明

推薦する

Apple 電卓の JS 実装

この記事の例では、Appleの電卓を実装するためのJSの具体的なコードを参考までに共有しています。具...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...

MySQL で GTID モードをオンラインで有効または無効にする

目次基本的な概要GTIDをオンラインで有効にする1. GTID検証ENFORCE_GTID_CONS...

MySQL 8.0.21 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.21のインストールと設定方法を記録してみんなで共有します。 1. ダウンロード1...

MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

時間差関数 TIMESTAMPDIFF と DATEDIFF の使用SQL ステートメント、特にスト...

SpringBoot でマイクロサービスを構築するために Docker を使用した実際の記録を分析する

それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...

JS ループで async と await を正しく使用する方法

目次概要(ループモード - 共通)配列と非同期メソッドを宣言して反復するforループで使用するマップ...

Vue+element はローカル検索機能付きのドロップダウン メニューを実装します

必要:バックエンドは配列オブジェクトを返し、それがフロントエンドで配列に結合されます。配列は名前に従...

Vue2 キューブUI 時間セレクターの詳細な説明

目次序文1. 需要と効果必要効果2. コードの実装index.vue(html)日付方法テスト結果3...

シェルスクリプト nginx 自動化スクリプト

このスクリプトは、nginxの起動、停止、再起動の操作を満たすことができます。 #!/bin/bas...

JavaScript 上級プログラミング: 変数とスコープ

目次1. 元の値と参照値2. インスタンス3. 範囲1. 元の値と参照値6 つの単純なデータ型の値は...

情報製品の読書リストのインタラクティブなデザインに関する考えと経験の共有

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

MySQLリモート接続失敗の解決策

以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...

VMware 上の CentOS に Oracle12.2 をサイレント インストールする詳細なグラフィック チュートリアル

環境準備: VMware+CentOS、jdk 1. システムディスクのサイズを確認する1. コマン...

Docker で最初のアプリケーションをデプロイする方法

前回の記事では、Docker Desktop をインストールし、Kubernetes を有効にしまし...