VUE 3 テレポート コンポーネントと使用構文をすぐに使い始める

VUE 3 テレポート コンポーネントと使用構文をすぐに使い始める

1. テレポートの紹介

テレポート コンポーネントは、その中のコンテンツの親要素を指定するための簡潔な方法を提供します。簡単に言えば、テレポート内のコンテンツは任意の DOM で制御できるため、使いやすいです。

使用する構文:

<テレポート先="body">
    <div>
   作成するコンテンツ</div>  
</テレポート>

to 属性は、テレポート内のコンテンツが追加される DOM 要素を指定します。タグ名、ID、またはクラス名にすることができます。

//タグ名。上記の例は、タグ名を使用して body 要素に追加されます。
<teleport to="body"></teleport>

//クラス名。例: to=".className"
<teleport to=".className"></teleport>

//id 名 <teleport to="#idName"></teleport>

1.1. 複数のテレポートを使用する

複数のテレポート ポータル コンポーネントは、そのすべてのコンテンツを 1 つのターゲットにマウントできます。複数のテレポート コンポーネントのコンテンツは兄弟ノードであり、最初にマウントされたコンテンツが前面に、後でマウントされたコンテンツが背面にマウントされます。

次のように使用します。

<テレポート先="body">
    <div class="first">
   最初の取り付け要素</div>  
</テレポート>
<テレポート先="body">
    <div class="second">
   2番目の取り付け要素</div>  
</テレポート>

実行結果は図に示されています。

上記の例は次の例と同等です。

<テレポート先="body">
 <div class="first">
  最初の取り付け要素</div>
 <div class="second">
  2番目の取り付け要素</div>
</テレポート>

2. テレポートを使用する理由

Vue で開発する場合、複数のコンポーネントが常にネストされるため、要素のスタイルや階層の処理が難しくなります。たとえば、モーダルまたはトーストプロンプトボックスを追加する必要がある場合、そのようなボックスを Vue コンポーネントから分離できれば、スタイルと階層を設定しやすくなります。

学生の中には、index.html に直接記述したほうが良いのではないかと思う人もいるかもしれません。さらに、モーダル要素とトースト要素は、vue コンポーネントの状態値を使用して、状態を通じてモーダルとトーストの非表示と表示を制御する必要があります。 index.html に直接記述すると状態制御が複雑になります。

そこで、テレポートコンポーネントが役に立ちます。これは、要素を任意の要素にテレポートできる「ドラえもん」のどこでもドアに少し似ています。 vue コンポーネントの状態値を使用して制御することもできます。

3. テレポートアプリケーション

vite + vue 3 を使用して作成されたプロジェクト。プロジェクトの作成方法の詳細については、「え、まだ webpack 使ってるの?」を参照してください。 「他の人はプロジェクトを構築するために vite を使用しています」という記事。

Vue 3 プロジェクトが作成されたら、index.htm ファイルを見つけて以下を追加します。

<div id="newModal"></div>    

コンポーネント ファイルに、テレポート コンポーネントを追加します。

<button @click="showModal" class="btn">モーダルを開く </button>
<!-- to 属性はターゲットの場所です -->
<テレポート先="#newModal">
 <div v-if="表示">
  <div>私はモーダルボックスです</div>
  </div>
</テレポート>

実行結果から、使用されたテレポート コンポーネントは、<div></div> と同じレベルの to 属性を介してコンテンツを <div></div> に送信することがわかりました。現時点では、テレポート内の要素の非表示と表示は、vue コンポーネント内の状態値によって完全に決定されます。

4. 初心者が陥りやすい落とし穴

学生の中には、テレポート コンポーネントを自分のプロジェクトに直接導入した人もいました。実行してみると、コンポーネントはそのまま出力されるものの、解析されずにエラーが報告されることがわかりました。

エラーメッセージは次のとおりです。

vue.runtime.esm.js?2b0e:619 [Vue 警告]: 不明なカスタム要素: <teleport> - コンポーネントを正しく登録しましたか? 再帰コンポーネントの場合は、必ず「name」オプションを指定してください。

それからインターネットで解決策を探しましたが、何も見つかりませんでした。

根本的な原因は、vue3 ではなく、まだ vue2 を使用していることです。学生の中には、vue-cli 3 を scaffold して作成したプロジェクトを vue3 とみなす人もいます。 vue-cli 2 と vue-cli 3 を使用してプロジェクトを作成することと、それが vue3 であるかどうかとの間には、必ずしも関連性はありません。

VUE 3 テレポート コンポーネントをすぐに使い始める方法についての記事はこれで終わりです。VUE 3 テレポートに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue3の組み込みコンポーネントであるTeleportの使い方を詳しく説明します
  • Vue3 での Teleport の使用に関する詳細な説明
  • vue3のテレポート瞬間移動機能の使い方を詳しく解説
  • Vue3 Teleportの実践と原理の詳細な説明

<<:  Windows サービス 2012 Alibaba Cloud サーバーで MySQL をビルドするときに msvcr100.dll ファイルが見つからないという問題を解決します

>>:  美しいHTMLコードの書き方

推薦する

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

Vue はグラフィック検証コードログインを実装します

この記事では、グラフィック認証コードログインを実装するためのVueの具体的なコードを参考までに紹介し...

Vue3.xはコンポーネント通信にmitt.jsを使用します

目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...

antd pro に基づく SMS 認証コード ログイン機能 (プロセス分析)

目次まとめ全体的なプロセスフロントエンドページコード検証コードとログイン サービスをリクエストする ...

Vue で HTML 5 ドラッグ アンド ドロップ API を使用する方法

ドラッグ アンド ドロップ API は、ドラッグ可能な要素を HTML に追加し、ドラッグ可能な豊富...

Docker クロスホストネットワーク (オーバーレイ) の実装

1. Dockerのホスト間通信Docker クロスホスト ネットワーク ソリューションには以下が含...

Ubuntu 18.04 で apt-get ソースを変更する方法

apt-get を使用してインストールすると、非常に遅くなります。国内のソースを変更すると、この問題...

CSSの記述形式、モバイルページの基本構造の詳細な説明

1. CSSの記述形式1. インラインスタイルCSSコードを開始タグに直接記述することができます&l...

クリックして展開し、全文を読む機能を実現する純粋なCSS

注記記事表示リストインターフェースを開発する場合、情報の基本的な概要を提供するために記事ヘッダーコン...

MySQL のメモリ使用量と CPU 使用率が高い場合のテストと解決策

変更後: innodb_buffer_pool_size=576M ->256M InnoDB...

Node.js での組み込みモジュールとカスタムモジュールの実装

1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...

CSS のフィルター属性とバックドロップフィルターの適用と違いの詳細な説明

フィルターとバックドロップフィルターにはいくつかの違いがあります。フィルターは現在の要素だけでなく、...

Linux インストール Redis 実装プロセスとエラー解決

今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...

Vue はウェブページの言語切り替えの国際化を実装します

1. 基本的な手順1: yarn add vue-i18nをインストールするこのパスに新しい .js...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...