vue3テレポート瞬間移動機能の使用は参考用です。具体的な内容は次のとおりです。 テレポートは通常、瞬間テレポートコンポーネントと翻訳されますが、実際には理解するのが難しいです。私は「独立したコンポーネント」と理解しています。 書き込んだコンポーネントを任意の DOM にマウントできるため、非常に自由かつ独立しています。 例: ポップアップコンポーネントの作成 <テンプレート> <テレポート先="#modal"> <div id="center" v-if="isOpen"> <h2><slot>これはモーダルです</slot></h2> <button @click="buttonClick">閉じる</button> </div> </テレポート> </テンプレート> <script lang="ts"> エクスポートデフォルト{ 小道具: { isOpen: ブール値、 }, 放出: 'クローズモーダル': null }, セットアップ(プロパティ、コンテキスト) { const ボタンクリック = () => { context.emit('モーダルを閉じる') } 戻る { ボタンクリック } } } </スクリプト> <スタイル> #中心 { 幅: 200ピクセル; 高さ: 200px; 境界線: 2px 黒一色; 背景: 白; 位置: 固定; 左: 50%; 上位: 50%; 左マージン: -100px; 上マージン: -100px; } </スタイル> app.vue で使用する場合は、通常のコンポーネントを呼び出すのと同じです。 <テンプレート> <div id="アプリ"> <img alt="Vue ロゴ" src="./assets/logo.png"> <HelloWorld msg="Vue.js アプリへようこそ"/> <フックデモ></フックデモ> <button @click="openModal">モーダルを開く</button><br/> <modal :isOpen="modalIsOpen" @close-modal="onModalClose"> 私のモーダル !!!!</modal> </div> </テンプレート> <スクリプト> './components/HelloWorld.vue' から HelloWorld をインポートします。 './components/HooksDemo.vue' から HooksDemo をインポートします。 './components/Modal.vue' から Modal をインポートします。 'vue' から{ref}をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 コンポーネント: こんにちは世界、 フックデモ、 モーダル }, 設定() { 定数 modalIsOpen = ref(false) 定数オープンモーダル = () => { modalIsOpen.値 = true } 定数onModalClose = () => { modalIsOpen.値 = false } 戻る { モーダルが開いている、 オープンモーダル、 オンモーダルクローズ } } } </スクリプト> <スタイル> #アプリ { フォントファミリー: Avenir、Helvetica、Arial、sans-serif; -webkit-font-smoothing: アンチエイリアス; -moz-osx-font-smoothing: グレースケール; テキスト配置: 中央; 色: #2c3e50; 上マージン: 60px; } </スタイル> app.vueファイルで使用する場合、モーダルはアプリのDOMノードの下にあり、親ノードのDOM構造とCSSがモーダルに影響し、問題が発生します。 1. モーダルは他のコンポーネントでラップされており、簡単に干渉される Teleport は、モーダル コンポーネントを #app 内にネストする必要がないため、相互に干渉することなく、レンダリングしたい外部 DOM にモーダル コンポーネントをレンダリングできます。Teleportは、コンポーネントを任意の場所に転送するためのポータルと考えることができます。これを使用する場合、 to属性によって、コンポーネントをマウントする DOM ノードを決定できます。 <テンプレート> <テレポート先="#modal"> <div id="center"> <h2>より良い</h2> </div> </テレポート> </テンプレート> publicフォルダの下のindex.htmlにノードを追加します。 <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="utf-8"> <meta http-equiv="X-UA-compatible" content="IE=edge"> <meta name="viewport" content="width=デバイス幅,初期スケール=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico" > <title><%= htmlWebpackPlugin.options.title %></title> </head> <本文> <スクリプトなし> <strong>申し訳ありませんが、JavaScript が有効になっていないと <%= htmlWebpackPlugin.options.title %> は正しく動作しません。続行するには JavaScript を有効にしてください。</strong> </noscript> <div id="アプリ"></div> <div id="モーダル"></div> <!-- ビルドされたファイルは自動的に挿入されます --> </本文> </html> このように、モーダル コンポーネントがアプリの下にマウントされておらず、アプリ コンポーネントの影響を受けていないことがわかります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Server-U 14バージョンのインストールと使用方法
>>: mysql 5.7.18 winx64 パスワード変更
この記事の例では、日付と時刻の選択を実装するための uniapp の具体的なコードを参考までに共有し...
CentOS7をダウンロード私がダウンロードしたイメージはCentOS-7-x86_64-DVD-1...
事前に書いておきます:次の手順では、ターミナルにコマンドを入力する必要があります。コンピューターでブ...
g++ を使用して初めて cpp ファイルをコンパイルしたとき、未定義の参照エラーが報告されました。...
目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...
目次依存関係をインストールするブーストをインストールMySQLをコンパイルしてインストールする構成依...
目次1. MySQLインストールパッケージをダウンロードする2. MySQLのアンインストール手順3...
目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...
自分でウェブページを書きたいので、HTML 言語についても少し勉強しています。これは、大学時代にウェ...
問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...
<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...
1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...
目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...
まずはコードと効果を見てみましょう↓ <スタイル> 。主要 { アウトライン: 1px ...
LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | grep ...