目次
方法 1: Vue.js の組み込みコンポーネントを使用する
方法 2: VueX を使用してポップアップ コンポーネントを管理する
方法 3: ポップアップ ウィンドウ コンポーネントを個別に実装する
ホームページ ウェブフロントエンド Vue.js Vueドキュメントでのポップアップウィンドウコンポーネントの実装方法

Vueドキュメントでのポップアップウィンドウコンポーネントの実装方法

Jun 20, 2023 pm 06:39 PM
vue 実装 ポップアップコンポーネント

Vue は、動的 Web アプリケーションを実装できる最も人気のある JavaScript フレームワークの 1 つです。 Vue では、ポップアップ ウィンドウは一般的に使用されるコンポーネントの 1 つであり、警告、成功プロンプト、エラー メッセージなどを表示するために使用できます。 Vue にはポップアップ コンポーネントを実装するためのメソッドがいくつか用意されており、この記事ではそのうちのいくつかを紹介します。

方法 1: Vue.js の組み込みコンポーネントを使用する

Vue.js には、ポップアップ効果を実現するために使用されるコンポーネント、モーダル ボックス (Modal) が付属しています。 。モーダル ボックスの実装には、Vue.js および CSS スタイルのいくつかの命令を使用する必要があります。

最初にコンポーネントを Vue コンポーネントに導入する必要があります:

<template>
  <div>
    <!-- ... -->
    <modal v-if="showModal" @close="showModal = false">
      <!-- 弹窗内容 -->
    </modal>
    <!-- ... -->
  </div>
</template>

<script>
import Modal from 'vue-js-modal'

export default {
  components: {
    Modal
  },
  data() {
    return {
      showModal: false
    }
  }
}
</script>
ログイン後にコピー

テンプレートでは、ポップアップされるコンポーネントを <modal> タグで囲みます。 ,@closemodal コンポーネント終了イベントをリッスンし、showModal 変数を false に設定します。このとき、空白部分をクリックするか、esc キーを押して modal コンポーネントを閉じます。

次に、モーダル ボックスの構成情報を <script> に追加する必要があります:

Modal.config.defaultDialogConfirmText = '确定'
Modal.config.defaultDialogCancelText = '取消'
Modal.config.defaultDialogPromptTitle = '提示'
Modal.config.defaultDialogPromptPlaceholder = ''
Modal.config.defaultSnackbarDuration = 2000
Modal.config.defaultSpinnerType = 'circle'
ログイン後にコピー

上記の構成は、必要に応じてカスタマイズできます。モーダルボックスの表示と非表示。

方法 2: VueX を使用してポップアップ コンポーネントを管理する

VueX は Vue.js の状態マネージャーであり、データのステータスをグローバルに管理できます。 VueX を使用すると、ポップアップ コンポーネントも管理できます。

Vuex でグローバル状態を定義して、ポップアップ ウィンドウの表示と非表示を制御します。

const state = {
  dialog: {
    visible: false,
    message: '',
    confirmLabel: '确定',
    cancelLabel: '取消',
    resolve: null,
    reject: null
  }
}
ログイン後にコピー

dialog には、ポップアップ ウィンドウ コンポーネントに関する情報が含まれています。ポップアップ ウィンドウが表示されるかどうか、ポップアップ ウィンドウのメッセージ、OK ラベルとキャンセル ラベルなどが含まれます。ポップアップ ウィンドウを表示する必要がある場合、ミューテーションによって状態のデータ ステータスを変更できます。

const mutations = {
  showDialog(state, payload) {
    state.dialog = {
      visible: true,
      message: payload.message,
      confirmLabel: payload.confirmLabel || '确定',
      cancelLabel: payload.cancelLabel || '取消',
      resolve: payload.resolve,
      reject: payload.reject
    }
  },
  hideDialog(state, payload) {
    state.dialog.visible = false
    if (payload.resolve) {
      payload.resolve()
    }
  }
}
ログイン後にコピー

上記のコードでは、showDialog を実行するときに、ポップ ウィンドウを制御します。渡されたパラメータの表示とスタイルを介してウィンドウを開きます。 hideDialog を実行するときは、ポップアップ ウィンドウを閉じ、渡されたパラメーターに基づいてコールバック関数を実行します。

方法 3: ポップアップ ウィンドウ コンポーネントを個別に実装する

上記の 2 つの方法に加えて、ポップアップ ウィンドウ コンポーネントを個別に実装することもできます。まず、Vue コンポーネントでポップアップ コンポーネント テンプレートを定義する必要があります。

<template>
  <div class="popup" v-show="visible"> 
    <div class="mask"></div> 
    <div class="dialog"> 
      <slot name="header"></slot>
      <div class="content"> 
        <slot></slot>
      </div> 
      <div class="footer" v-show="showFooter"> 
        <button class="btn btn-primary" @click="ok" v-text="okText || '确定'"></button>
        <button class="btn btn-default" @click="cancel" v-text="cancelText || '取消'"></button>
      </div> 
    </div> 
  </div>
</template>
ログイン後にコピー

上記のコードでは、<slot></slot> を使用します。 <slot name="header"></slot> を使用してポップアップ ウィンドウのコンテンツとタイトルを渡します。また、必要に応じてポップアップ ウィンドウ ボタンを追加することもできます。

次に、<script> でポップアップ コンポーネントのプロパティとメソッドをいくつか定義する必要があります:

<template>
  <div class="popup" v-show="visible"> 
    <div class="mask"></div> 
    <div class="dialog"> 
      <slot name="header"></slot> 
      <div class="content"> 
        <slot></slot> 
      </div> 
      <div class="footer" v-show="showFooter"> 
        <button class="btn btn-primary" @click="ok" v-text="okText || '确定'"></button>
        <button class="btn btn-default" @click="cancel" v-text="cancelText || '取消'"></button>
      </div> 
    </div> 
  </div>
</template>

<script>
export default {
  name: 'Popup',
  props: {
    visible: Boolean, //控制弹窗是否可见
    okText: String, //确定按钮文本
    cancelText: String, //取消按钮文本
    showFooter: {
      type: Boolean,
      default: true
    }
  },
  methods: {
    ok() {
      this.$emit('ok')
    },
    cancel() {
      this.$emit('cancel')
    }
  }
}
</script>
ログイン後にコピー

v-bind を使用できます。 v-on を使用してコンポーネントのプロパティとメソッドを設定し、ポップアップ ウィンドウを使用する必要があるコンポーネントにコンポーネントを導入し、次の引数を渡してポップアップ ウィンドウ コンポーネントを呼び出します。異なるパラメータ。

概要:

Vue.js では、ポップアップ コンポーネントを実装する方法がたくさんあります。 Vue.js に付属のモーダル ボックス コンポーネントを使用して、ポップアップ ウィンドウをすばやく実装できます。VueX を使用して、ポップアップ ウィンドウ コンポーネントのステータスをグローバルに制御できます。ポップアップ ウィンドウ コンポーネントを個別に実装することで、カスタマイズできます必要に応じて、ポップアップ ウィンドウ コンポーネントのスタイルと機能を変更します。実際のニーズに応じて適切な開発手法を選択する必要があります。

以上がVueドキュメントでのポップアップウィンドウコンポーネントの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

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

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

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

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

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

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

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

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

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

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

Vue Paginationの使用方法 Vue Paginationの使用方法 Apr 08, 2025 am 06:45 AM

ページネーションは、パフォーマンスとユーザーエクスペリエンスを向上させるために、大きなデータセットを小さなページに分割するテクノロジーです。 VUEでは、次の組み込みメソッドを使用してページを使用できます。ページの総数を計算します。TotalPages()トラバーサルページ番号:V-For Directive on Currentページを設定します。

Function Intercept Vueの使用方法 Function Intercept Vueの使用方法 Apr 08, 2025 am 06:51 AM

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

See all articles