Vueコンポーネント開発:モーダルボックスコンポーネントの実装方法
Vue コンポーネント開発: モーダル ボックス コンポーネントの実装方法
Web アプリケーションでは、モーダル ボックスは、いくつかの重要なコンテンツを表示するために使用できる一般的な UI コントロールです。プロンプト情報、警告情報、ユーザーに特定の操作を促す情報など。この記事では、Vue フレームワークを使用して単純なモーダル ボックス コンポーネントを開発する方法を紹介し、参考となるコード例を示します。
- コンポーネント構造
まず、HTML 構造、スタイル、論理関数を含むモーダル ボックス コンポーネントを定義する必要があります。通常、コンポーネントにはプロパティを子コンポーネントに渡す親コンポーネントがあり、子コンポーネントはプロパティに基づいて UI をレンダリングします。
以下はモーダル ボックスの最も単純な HTML 構造です:
<template> <div class="modal"> <div class="modal-content"> <!-- modal header --> <div class="modal-header"> <h4 id="title">{{ title }}</h4> <button class="close-btn" @click="closeModal">×</button> </div> <!-- modal body --> <div class="modal-body"> <slot></slot> </div> </div> </div> </template>
このうち、モーダル ボックスは次の領域に分かれています。
- タイトル領域(モーダル ヘッダー) 、タイトルと閉じるボタンが含まれます。
- モーダルボディは、モーダルボックスに表示する必要があるコンテンツを表示するために使用され、コンテンツはスロットを通じて転送できます。
モーダル ボックスをより美しく見せるために、いくつかの基本スタイルを定義する必要もあります。ここでは単純なスタイルのみが提供されており、読者は必要に応じてより複雑なスタイルを定義できます。
.modal { position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4); display: flex; justify-content: center; align-items: center; } .modal-content { background-color: #fefefe; border-radius: 5px; box-shadow: 0 0 20px rgba(0,0,0,0.4); max-width: 600px; width: 70%; padding: 20px; } .modal-header { display: flex; justify-content: space-between; align-items: center; } .close-btn { font-size: 24px; font-weight: bold; color: #aaaaaa; }
- コンポーネント関数
次に、モーダル ボックス コンポーネントにいくつかの機能を与える必要があります。まず、モーダルのタイトルと表示/非表示の状態を渡すためにいくつかのプロパティを定義する必要があります。これらのプロパティを通じて、親コンポーネントのモーダル ボックスの表示と非表示を制御できます。
export default { name: 'Modal', props: { title: { type: String, default: '' }, show: { type: Boolean, default: false } }, methods: { closeModal() { this.$emit('close'); } } }
ここでは 2 つの属性を定義します。
- title: モーダル ボックスのタイトル。
- show: モーダルボックスの状態を表示/非表示にします。
さらに、コンポーネント内にモーダル ボックスを閉じる closeModal メソッドを定義しました。このメソッドは、ユーザーが閉じるボタンをクリックしたときに呼び出され、イベント ディスパッチ メカニズムを通じて親コンポーネントに close イベントを送信して、モーダル ボックスを閉じる必要があることを親コンポーネントに伝えます。
次に、モーダル ボックス コンポーネントのテンプレートにロジックを追加して、show 属性の値に基づいてモーダル ボックスを表示または非表示にする必要があります。
<template> <div v-if="show" class="modal"> <div class="modal-content"> <!-- modal header --> <div class="modal-header"> <h4 id="title">{{ title }}</h4> <button class="close-btn" @click="closeModal">×</button> </div> <!-- modal body --> <div class="modal-body"> <slot></slot> </div> </div> </div> </template>
- コンポーネントの使用
これで、モーダル ボックス コンポーネントの開発が完了しました。このコンポーネントを使用する場合は、親コンポーネントにコンポーネントを導入し、必要なプロパティを渡すだけで済みます。
<template> <div> <button @click="showModal">显示模态框</button> <Modal :title="title" :show="show" @close="closeModal"> <p>这里是模态框中的内容</p> </Modal> </div> </template> <script> import Modal from './Modal.vue'; export default { name: 'App', components: { Modal }, data() { return { title: '这里是模态框标题', show: false }; }, methods: { showModal() { this.show = true; }, closeModal() { this.show = false; } } } </script>
ここでは、親コンポーネントで Modal コンポーネントを使用し、タイトルと表示属性を渡します。 show 属性はモーダル ボックスの表示と非表示の状態を制御し、title 属性はモーダル ボックスのタイトルを制御します。
「モーダルボックスを表示」ボタンをクリックすると、モーダルボックスが表示されます。閉じるボタンをクリックするとモーダルボックスが非表示になります。
- 概要
この記事の導入部を通じて、Vue フレームワークを使用して単純なモーダル ボックス コンポーネントを開発する方法を学びました。コンポーネントを使用すると、コード ロジックをまとめて整理できるため、理解と管理が容易になります。特定の関数を再利用する必要がある場合、その関数をコンポーネントに抽象化し、必要に応じてそれを参照できます。これにより、コードの再利用性と保守性が向上します。
完全なコードは次のとおりです:
Modal.vue
<template> <div v-if="show" class="modal"> <div class="modal-content"> <!-- modal header --> <div class="modal-header"> <h4 id="title">{{ title }}</h4> <button class="close-btn" @click="closeModal">×</button> </div> <!-- modal body --> <div class="modal-body"> <slot></slot> </div> </div> </div> </template> <script> export default { name: 'Modal', props: { title: { type: String, default: '' }, show: { type: Boolean, default: false } }, methods: { closeModal() { this.$emit('close'); } } } </script>
App.vue
<template> <div> <button @click="showModal">显示模态框</button> <Modal :title="title" :show="show" @close="closeModal"> <p>这里是模态框中的内容</p> </Modal> </div> </template> <script> import Modal from './Modal.vue'; export default { name: 'App', components: { Modal }, data() { return { title: '这里是模态框标题', show: false }; }, methods: { showModal() { this.show = true; }, closeModal() { this.show = false; } } } </script>
以上がVueコンポーネント開発:モーダルボックスコンポーネントの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

VUEの関数傍受は、指定された期間内に関数が呼び出され、パフォーマンスの問題を防ぐ回数を制限するために使用される手法です。実装方法は次のとおりです。LodashLibrary:Import {Debounce}から「Lodash」からインポート。 debounce関数を使用して、インターセプト関数を作成します。インターセプト関数を呼び出すと、制御関数は500ミリ秒でせいぜい1回呼び出されます。
