1. テレポートテレポート公式ドキュメント 1.1 テレポートの紹介1. Vue は、UI と関連する動作をコンポーネントにカプセル化することで UI を構築することを推奨します。これらを互いにネストして、アプリケーションの UI を構成するツリーを構築できます。 2. ただし、コンポーネント テンプレートの一部が論理的にそのコンポーネントに属している場合があり、技術的な観点からは、テンプレートのこの部分を DOM 内の別の場所、つまり Vue アプリケーションの外部に移動する方が適切です。 上記はわかりにくいように見えますか? これは、公式文書から翻訳したものです。
1.2 テレポートの使用1. ここでグローバルモーダルボックスも実装します 2. 親子コンポーネント通信メカニズムを介してテレポートマウント機能を使用する <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8" /> <link rel="icon" href="/favicon.ico" /> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0" /> <title>Vite アプリ</title> </head> <本文> <div id="アプリ"></div> <div id="modal"></div> <!-- アプリと同じレベルでタグモーダルを定義します --> <script type="module" src="/src/main.ts"></script> </本文> </html> モーダルコンポーネントを定義する <テンプレート> <!-- teleport には to 属性があり、id が modal のタグに付加されています --> <テレポート先="#modal"> <div id="center" v-if="isOpen"> <div class="modal-header" v-if="title"> <h2>{{ タイトル }}</h2> <時間 /> </div> <div class="modal-content"> <!-- 外部コンテンツの挿入をサポートするためにスロットを使用します --> <スロット></スロット> </div> <button @click="buttonClick">閉じる</button> </div> </テレポート> </テンプレート> <script lang="ts"> // defineProps<{ msg: string }>() Vue3 セットアップはプロパティを定義します 'vue' から defineComponent をインポートします。 エクスポートデフォルトdefineComponent({ 小道具: { isOpen: ブール値、 タイトル: 文字列 }, // 出力を検証: { 'クローズモーダル': null // (ペイロード: 任意) => { // payload.type === 'close' を返す // } }, セットアップ(プロパティ、コンテキスト) { const ボタンクリック = () => { context.emit('モーダルを閉じる'); } 戻る { ボタンクリック } } }); </スクリプト> <スタイル> #中心 { 幅: 200ピクセル; 高さ: 200px; 境界線: 2px 黒一色; 背景色: 白; 位置: 固定; 左: 50%; 上位: 50%; 変換: translate(-50%, -50%); } </スタイル> 3. モーダルコンポーネントを使用する <スクリプト設定 lang="ts"> 'vue' から { ref } をインポートします。 './components/Modal.vue' から Modal をインポートします。 const modalTitle = ref('Hello, World'); modalIsOpen を ref(false) に設定します。 定数オープンモーダル = () => { modalIsOpen.値 = true; } 定数onModalClose = () => { modalIsOpen.値 = false; } </スクリプト> <テンプレート> <img alt="Vue ロゴ" src="./assets/logo.png" /> <div class="test-useURLLoader"> <button @click="openModal">モーダル</button> <モーダル:title="modalTitle" :isOpen="modalIsOpen" @close-modal="onModalClose"> 私のモデル </モーダル> </div> </テンプレート> <スタイル> #アプリ { フォントファミリー: Avenir、Helvetica、Arial、sans-serif; -webkit-font-smoothing: アンチエイリアス; -moz-osx-font-smoothing: グレースケール; テキスト配置: 中央; 色: #2c3e50; 上マージン: 60px; } </スタイル> 1.3 プレビュー効果2. サスペンスサスペンス公式ドキュメント
2.1 サスペンスの紹介非同期データに使用できます。さまざまな状況に適応するためのローカル処理方法があり、2つの選択肢(読み込み完了と失敗のスロット)を提供します。 より詳しい情報は、公式ドキュメントを自分で読んでみてください。ここではその中からいくつか抜粋しました。 2.2 サスペンスの使用1. 非同期効果を実現するために、Promise を使用して非同期操作を実装できます。 2. 次のコンポーネント <テンプレート> <!-- データを表示するには 3 秒待ちます --> <h1>{{ 結果 }}</h1> </テンプレート> <script lang="ts"> 'vue' から defineComponent をインポートします。 エクスポートデフォルトdefineComponent({ 設定() { 新しいPromise((resolve) => {を返す タイムアウトを設定する(() => { 解決を返す({ 結果: 43 }) }, 3000); }); } }); </スクリプト> <スタイル> </スタイル> 3. App.vueでこのコンポーネントを使用する <スクリプト設定 lang="ts"> './components/AsyncShow.vue' から AsyncShow をインポートします。 </スクリプト> <テンプレート> <img alt="Vue ロゴ" src="./assets/logo.png" /> <div class="test-useURLLoader"> <!-- Promise が完了していない場合は、Loding... と表示されます。Promise が完了すると、値が表示されます --> <サスペンス> <テンプレート #デフォルト> <非同期表示 /> </テンプレート> <テンプレート #フォールバック> <h2> 読み込み中... </h2> </テンプレート> </サスペンス> </div> </テンプレート> <スタイル> #アプリ { フォントファミリー: Avenir、Helvetica、Arial、sans-serif; -webkit-font-smoothing: アンチエイリアス; -moz-osx-font-smoothing: グレースケール; テキスト配置: 中央; 色: #2c3e50; 上マージン: 60px; } </スタイル> 2.3 プレビュー効果要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: カルーセルバナーの自動回転効果を実現する純粋な CSS
>>: MySQL テーブルスペースのリカバリに対する正しいアプローチについての簡単な説明
Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...
01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...
iframe の src を 'about:blank' に設定した後、"...
Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...
Linux 構成/ビルド システムがどのように機能するかを深く理解します。 Linux カーネル構成...
序文KMS を通じてライセンス認証できる Windows システムは、一般的に VL バージョン、つ...
目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...
この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...
この記事では、MySQL インストールの詳細なチュートリアルを記録し、全員と共有します。 1. バー...
スワップの紹介Linux のスワップ (スワップ パーティション) は、Windows の仮想メモリ...
目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...
目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...
この記事ではMySQL 5.7.21のインストールと設定方法を記録しています。具体的な内容は以下のと...
序文私は less/sass を書くことに慣れていますが、小さなプログラムを開発するときには、まだ ...
目次JSONとはなぜこの技術なのでしょうか? JSONの使い方- データ形式- メモ- JSには2つ...