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 テーブルスペースのリカバリに対する正しいアプローチについての簡単な説明
目次1. UDPとLinuxの基礎の紹介2. 各機能の使い方1. ソケット機能の使用2. バインド機...
皆さんもJDを使ったことがあると思います。ホームページには非常によく見られる機能があります。階段の特...
insとdel は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、また...
間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...
この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...
ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...
DataGrid コントロールの DataSource プロパティがデザイン時に設定されている場合、...
Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...
1. インストール環境コンピュータモデル: Lenovo Y471a (i5) ノートパソコンシステ...
Mac 用 MySQL をダウンロード: https://downloads.mysql.com/a...
目次導入子プロセスプロセスを非同期的に作成する同期作成プロセス導入Node.js のメイン イベント...
この記事では、ランダムロールコーラーを実装するためのJavaScriptの具体的なコードを参考までに...
1. 依存パッケージをインストールする [root@localhost ~]# yum insta...
環境説明:実行中の MySQL 環境があります。以前の構成ファイルの設定が単純すぎたため (inno...
目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...