Vue3 非同期データ読み込みコンポーネントサスペンスの使い方

Vue3 非同期データ読み込みコンポーネントサスペンスの使い方

序文

Vue3 には多くの注目すべき機能が追加されましたが、サスペンス コンポーネントもその 1 つです。これは非同期リクエスト データを処理するのに非常に実用的です。この記事では、簡単な例を通してその使い方を紹介します。興味がある場合は、公式ドキュメントを参照してください。

コンポーネントが正しくレンダリングされる前に、何らかの非同期リクエストを実行する必要があることはよくあります。これは通常、開発者がこれを処理するために設計したメカニズムによって処理されます。これを行うには多くの優れた方法があります。

たとえば、API から非同期的にデータを取得し、応答データが解析されるときに読み込み効果などの情報を表示する場合は、Vue3 の suspense コンポーネントを使用してそのような要件を実行できます。

コンポーネントの作成

コンポーネントを作成し、Peoples.vue という名前を付けます。そのコンポーネント コードは次のとおりです。

<テンプレート>
    <div v-for="(people, index) in peoples.results" :key="index">
        {{ people.name }} {{ people.birth_year }}
    </div>
</テンプレート>
<スクリプト>
"vue" から { ref } をインポートします。
エクスポートデフォルト{
    名前: 「CyPeoples」、
    非同期セットアップ() {
        const peoples = ref(null);
        const ヘッダー = { "Content-Type": "application/json" };
        const fetchPeoples = fetch("https://swapi.dev/api/people", { を待機します。
            ヘッダー、
        });
        peoples.value = fetchPeoples.json() を待機します。
        { 人々 } を返します。
    },
};
</スクリプト>

ここで、コンポーネント状態の反応性を保証するために ref が導入されています。したがって、上記のコード スニペットによれば、ムービー データは非同期 API 呼び出しを通じて取得されます。
VUE プロジェクトで HTTP リクエストを開始するには、通常 Axios が使用されます。ここでは fetch を使用します。

さて、サスペンスを使用してアプリケーションに読み込み情報を表示してみましょう。

App.vue ファイルを変更して、コードを次のようにします。

<テンプレート>
    <div>
        <h1>スターウォーズのキャラクター</h1>
    </div>
    <サスペンス>
        <テンプレート #デフォルト>
            <サイピープルズ />
        </テンプレート>
        <テンプレート #フォールバック>
            <div>
                <h3>データを読み込んでいます...</h3>
            </div>
        </テンプレート>
    </サスペンス>
</テンプレート>
<スクリプト>
「./components/Peoples.vue」からCyPeoplesをインポートします。
「vue」から { suspense } をインポートします。
エクスポートデフォルト{
    名前:「アプリ」、
    コンポーネント:
        サイピープルズ、
        サスペンス、
    },
};
</スクリプト>

上記のコード スニペットから、非同期リクエストが完了した後に UI を表示するための初期化テンプレート コンポーネントとして #default を使用し、サスペンス コンポーネントを使用して読み込み効果を簡単に実現できます。 #fallback は、非同期リクエスト内の処理 UI であり、一般的な読み込み効果です。

要約する

サスペンス コンポーネントは、非同期リクエスト UI の処理ロジックを簡素化する Vue3 の新機能です。

Vue3 非同期データ読み込みコンポーネントサスペンスに関するこの記事はこれで終わりです。Vue3 非同期データ読み込みコンポーネントサスペンスに関するその他の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します
  • Vue の動的コンポーネントと非同期コンポーネントの詳細な理解
  • Vueはオンデマンドのコンポーネント読み込みと非同期コンポーネント機能を実装します
  • Vueの動的コンポーネントと非同期コンポーネントの詳細な説明
  • Vueコンポーネント開発における非同期コンポーネントの詳細な説明

<<:  Windows 環境での MySQL 8.0 のインストール、設定、アンインストール

>>:  VMware Workstation Pro は Win10 ピュア バージョンのオペレーティング システムをインストールします

推薦する

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...

CSS で要素フローティングとクリアフローティングを実装する方法

フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

JavaScriptスコープについての簡単な説明

目次1. 範囲1. グローバルな範囲2. ローカルスコープ2. 変数のスコープ1. グローバル変数2...

Dockerで構築されたコンテナにpingツールをインストールする

Centos や Ubuntu など、Docker が pull する Base イメージは最もシン...

ReactでCSSをエレガントに書く方法

目次1. インラインスタイル2. インポート方法を使用する3.cssモジュールのエクスポート4. ス...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...

MySQL スロークエリログの基本的な使い方チュートリアル

スロークエリログ関連のパラメータMySQL スロー クエリ関連のパラメータの説明: slow_que...

Dockerデーモンのセキュリティ設定項目の詳細な説明

目次1. テスト環境1.1 CentOS 7をインストールする1.2 Docker CE 19.03...

MySQL の一般的な SQL ステートメントの概要

1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

Linux でファイルの権限 (所有権) を変更する

Linux と Unix はマルチユーザー オペレーティング システムであるため、ファイルの権限と所...

CSSとHTMLを組み合わせる4つの方法

(1)各HTMLタグには属性スタイルがあり、CSSとHTMLを組み合わせている。 <div s...