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

推薦する

MySQLデータベースを操作するためのコマンドラインツールmycliの簡単な紹介

GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...

MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明

序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...

Webデザインと制作のテスト問題と参考回答

<br />Web デザインと制作テスト パート I 多肢選択問題 1. 単一選択問題 ...

yum を使用して rpm と関連する依存関係をダウンロードして、docker をオフラインでインストールします。

yum を使用してすべての依存関係を一緒にインストールできますが、–downloadonly –d...

Alibaba Cloud CentOS 7 に yum を使用して MySQL をインストールする正しい方法 (推奨)

yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...

MySQL マスタースレーブレプリケーション構成プロセス

メインライブラリの構成1. MySQLを設定する vim /etc/my.cn # ファイルに次の内...

Tomcatの自動シャットダウンに関するバグ修正

序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...

1 つの記事で v-model とその修飾子を学ぶ

目次序文v-model の修飾子:怠け者トリム番号さまざまな入力タイプやその他の要素での v-mod...

JS、CSS スタイルのリファレンスの記述

CS: ... 1. <link type="text/css" href...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

CentOS7 で MySQL のスケジュールされた自動バックアップを実装する方法

実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...

MySQL Routerのインストールと展開

目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...

基礎知識: ウェブサイトのアドレスの前の http はどういう意味ですか?

HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...

Server-U 14バージョンのインストールと使用方法

Server-Uソフトウェアの紹介Server-U は非常に強力なファイル マネージャーです。FTP...