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コードの書き方

推薦する

Mysqlのprepare前処理の具体的な使用法

目次1. 前処理2. 前処理塗布方法A. 例: B. 実行計画の変更を追跡するための前処理C. スト...

Vue3.0はvue-grid-layoutプラグインを使用してドラッグレイアウトを実装します。

目次1. プラグイン2. 幕間3. 実装4. 検証機能1. プラグインまず、私たちが選んだプラグイン...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

jsはブラウザを閉じるときにアカウントのログアウトを処理します

目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...

Vue で手ぶれ補正を実装するためのサンプルコード

手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...

携帯電話番号が合法かどうかを判断するWeChatアプレットのサンプルコード

目次シナリオ効果コード要約するシナリオ登録ページに携帯電話番号を入力し、登録インターフェイスを要求す...

Linux で特定の時間にコマンドを実行する方法

先日、rsync を使用して LAN 上の別のシステムに大きなファイルを転送していました。非常に大き...

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

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

Docker マイクロサービス用の ETCD クラスターの構築に関する詳細なチュートリアル

目次etcdの機能etcdが独自の高可用性クラスタを構築するには、主に3つの形式があります。今回構築...

CSS はこのように使用できますか?気まぐれなグラデーションの芸術

前回の記事「1行のCSSコードの魅力」では、たった1行のCSSコードで生成できる美しい(奇妙な感じと...

React 合成イベントの説明

目次入力ボックスをクリックして開始します拡張機能入力ボックスをクリックすると複数のイベントが発生しま...

このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)

朝早くに電話で起こされました。あるプロジェクトのデータベースがダウンしていて起動できないとのことでし...

CentOS 6 および 7 での MySQL 5.7 の詳細なインストール チュートリアル

開発には常にデータが必要です。サーバーとしての Linux では、テスト データを格納するためのデー...

Vueはキャンバスの手書き入力を使用して中国語を認識します

効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...

Vueでルーティング権限を動的に設定する主なアイデア

以前、インターネット上で動的ルーティング設定をいくつか見たことがありましたが、現在のプロジェクトとは...