Inhaltsverzeichnis
Vorteile
Idee
Vorläufige Kapselung basierend auf el-dialog
Mount.
in app.vue
Heim Web-Frontend View.js So verwenden Sie den Dialog von element-plus in vue3

So verwenden Sie den Dialog von element-plus in vue3

May 11, 2023 pm 09:13 PM
vue3 element-plus dialog

Vorteile

Entfernen Sie die umständliche Benennung sichtbarer und wiederholter Doms.

Idee

Kapseln Sie den Dialog in einer Komponente, die durch eine Funktion aufgerufen werden kann. Wie folgt:

addDialog({
  title: "测试", //弹窗名
  component: TestVue, //组件
  width: "400px", //弹窗大小
  props: {
    //传给组件的参数
    id: 0
  },
  callBack: (data: any) => {
    //当弹窗任务结束后,调用父页面的回掉函数。(比如我新增完成了需要刷新列表页面)
    console.log("回调函数", data)
  }
})
Nach dem Login kopieren

Vorläufige Kapselung basierend auf el-dialog

// index.ts
import { reactive } from "vue"
type dialogOptions = {
  title: string
  component: any
  props?: Object
  width: string
  visible?: any
  callBack?: Function
}
export const dialogList: dialogOptions[] = reactive([])

export const addDialog = (options: dialogOptions) => {
  dialogList.push(Object.assign(options, { visible: true }))
}

export const closeDialog = (item: dialogOptions, i: number, args: any) => {
  dialogList.splice(i, 1)
  item.callBack && item.callBack(...args)
}
Nach dem Login kopieren
<template>
  <Teleport to="body">
    <el-dialog
      v-for="(item, index) in dialogList"
      :key="index"
      :title="item.title"
      :width="item.width"
      v-model="item.visible"
    >
      <component :is="item.component" v-bind="item.props" @close="(...args:any) => closeDialog(item, index, args)" />
    </el-dialog>
  </Teleport>
</template>

<script setup lang="ts">
  import { dialogList, closeDialog } from "./index"
</script>
Nach dem Login kopieren
  • Definiert zunächst die Dialogliste, die die Informationen aller Popup-Fenster enthält.

  • component Verwenden Sie die Komponente, um Unterkomponenten dynamisch zu laden.

  • addDialog Rufen Sie die Funktion auf, die das Popup-Fenster aufruft.

  • closeDialog Die Funktion, die das Popup-Fenster schließt.

Mount.

<script setup>
import Mydialog from "@/components/gDialog/index.vue"
</script>

<template>
 <router-view />
 <Mydialog></Mydialog>
</template>

<style scoped>

</style>
Nach dem Login kopieren

in app.vue

Verwenden Sie

Erstellen Sie eine Popup-Fensterkomponente

<!-- test.vue -->
<template>
  父弹窗
  <el-button type="primary" @click="openChildDialog">打开子dialog</el-button>
  <el-button type="primary" @click="closeDialog">关闭弹窗</el-button>
</template>

<script setup lang="ts">
  import { addDialog } from "@/components/gDialog/index"
  import childVue from "./child.vue"
  const props = defineProps(["id"])
  console.log(props.id, "props")
  const emit = defineEmits(["close"])
  const closeDialog = () => {
    emit("close", 1, 2, 34)
  }
  const openChildDialog = () => {
    addDialog({
      title: "我是子dialog",
      width: "500px",
      component: childVue
    })
  }
</script>
Nach dem Login kopieren

Aktivieren Sie das Popup-Fenster auf der Listenseite

<!-- list.vue -->
<template>
  列表页
  <el-button type="primary" @click="openDialog">打开dialog</el-button>
</template>
<script setup lang="ts">
import { addDialog } from "@/components/gDialog/index"
import TestDialog from "./test.vue"
const openDialog = () => {
  addDialog({
    title: "我是dialog",
    width: "500px",
    props:{
      id:0
    }
    component: TestDialog,
    callBack: (data: any) => {
      //当弹窗任务结束后,调用父页面的回掉函数。(比如我新增完成了需要刷新列表页面)
      console.log("回调函数", data)
    }
  })
}
Nach dem Login kopieren

Mehrstufige Verschachtelung von Popup-Fenstern🎜
<!-- child.vue -->
<template>
  子弹窗
  <el-button type="primary" @click="closeDialog">关闭弹窗</el-button>
</template>

<script setup lang="ts">
  import { addDialog } from "@/components/gDialog/index"
  const emit = defineEmits(["close"])
  const closeDialog = () => {
    emit("close", 1, 2, 34)
  }
</script>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Dialog von element-plus in vue3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie die Bearbeitbarkeit von Tabellen und die Zeilenauswahl über Vue und Element-Plus So implementieren Sie die Bearbeitbarkeit von Tabellen und die Zeilenauswahl über Vue und Element-Plus Jul 17, 2023 am 09:43 AM

So implementieren Sie die Bearbeitbarkeit von Tabellen und die Zeilenauswahl über Vue und Element-plus. Einführung: Tabellen sind eine der am häufigsten verwendeten Komponenten bei der Entwicklung von Webanwendungen. Tabellenbearbeitbarkeit und Zeilenauswahlfunktionen sind sehr häufige und praktische Anforderungen. Im Vue.js-Framework können diese beiden Funktionen einfach durch die Kombination der Element-plus-Komponentenbibliothek erreicht werden. In diesem Artikel wird erläutert, wie Tabellenbearbeitbarkeit und Zeilenauswahlfunktionen über Vue und Element-plus implementiert werden, und es werden entsprechende Codebeispiele bereitgestellt. 1. Projektgenauigkeit

So verwenden Sie vue und Element-plus zur schrittweisen Implementierung von Formularen und zur Formularüberprüfung So verwenden Sie vue und Element-plus zur schrittweisen Implementierung von Formularen und zur Formularüberprüfung Jul 17, 2023 pm 10:43 PM

So verwenden Sie Vue und ElementPlus zur schrittweisen Implementierung von Formularen und zur Formularüberprüfung. In der Webentwicklung sind Formulare eine der häufigsten Benutzerinteraktionskomponenten. Bei komplexen Formularen müssen wir häufig schrittweise Ausfüll- und Formularüberprüfungsfunktionen durchführen. In diesem Artikel wird erläutert, wie Sie mit Vue und dem ElementPlus-Framework diese beiden Funktionen erreichen. 1. Schritt-für-Schritt-Formular Ein Schritt-für-Schritt-Formular bezieht sich auf die Aufteilung eines großen Formulars in mehrere kleine Schritte, und Benutzer müssen die Schritte entsprechend den Schritten ausfüllen. Wir können die Komponentisierung und das Routing von Vue nutzen

vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src May 21, 2023 pm 03:16 PM

vue3+vite:src verwendet „require“, um Bilder dynamisch zu importieren, und vue3+vite importiert dynamisch mehrere Bilder. Wenn Sie „requireisnotdefined“ verwenden, wird eine Fehlermeldung angezeigt like vue2 like imgUrl:require(' .../assets/test.png') wird importiert, da Typescript Require nicht unterstützt, daher wird Import verwendet. So lösen Sie das Problem: Verwenden Sieawaitimport

So verwenden Sie Vue und Element-Plus zum Implementieren von Upload- und Download-Funktionen für Dateien So verwenden Sie Vue und Element-Plus zum Implementieren von Upload- und Download-Funktionen für Dateien Jul 18, 2023 pm 12:28 PM

So verwenden Sie Vue und ElementPlus zum Implementieren von Funktionen zum Hochladen und Herunterladen von Dateien. Einführung: In Webanwendungen sind Funktionen zum Hochladen und Herunterladen von Dateien sehr verbreitet. In diesem Artikel wird erläutert, wie Sie mit Vue und ElementPlus Funktionen zum Hochladen und Herunterladen von Dateien implementieren. Anhand des Beispielcodes können Sie einfach und intuitiv verstehen, wie Sie Vue und ElementPlus zum Implementieren dieser Funktionen verwenden. 1. Installieren und importieren Sie ElementPlus. Installieren Sie ElementPlus im Vue-Projekt.

So aktualisieren Sie einen Teilinhalt der Seite in Vue3 So aktualisieren Sie einen Teilinhalt der Seite in Vue3 May 26, 2023 pm 05:31 PM

Um eine teilweise Aktualisierung der Seite zu erreichen, müssen wir nur das erneute Rendern der lokalen Komponente (dom) implementieren. In Vue lässt sich dieser Effekt am einfachsten mit der v-if-Direktive erzielen. In Vue2 können wir zusätzlich zur Verwendung der v-if-Anweisung zum erneuten Rendern des lokalen Doms auch eine neue leere Komponente erstellen. Wenn wir die lokale Seite aktualisieren müssen, springen wir zu dieser leeren Komponentenseite und springen dann wieder hinein der beforeRouteEnter-Schutz in der leeren Komponente. Wie in der Abbildung unten gezeigt, wie man in Vue3.X auf die Schaltfläche „Aktualisieren“ klickt, um das DOM im roten Feld neu zu laden und den entsprechenden Ladestatus anzuzeigen. Da der Guard in der Komponente in der scriptsetup-Syntax in Vue3.X nur o hat

So verwenden Sie Vue und Element-Plus zum Implementieren von Nachrichtenbenachrichtigungen und Popup-Eingabeaufforderungen So verwenden Sie Vue und Element-Plus zum Implementieren von Nachrichtenbenachrichtigungen und Popup-Eingabeaufforderungen Jul 17, 2023 pm 10:42 PM

Einführung in die Verwendung von Vue und ElementPlus zum Implementieren von Nachrichtenbenachrichtigungen und Popup-Eingabeaufforderungen: Bei der Entwicklung von Webanwendungen sind Nachrichtenbenachrichtigungen und Popup-Eingabeaufforderungen eine der sehr wichtigen Funktionen. Als beliebtes Front-End-Framework kann Vue in Kombination mit ElementPlus, einer hervorragenden UI-Bibliothek, problemlos verschiedene Popup-Eingabeaufforderungen und Nachrichtenbenachrichtigungsfunktionen implementieren. In diesem Artikel wird erläutert, wie Sie die ElementPlus-Komponentenbibliothek in einem Vue-Projekt verwenden, um Nachrichtenbenachrichtigungs- und Popup-Eingabeaufforderungsfunktionen zu implementieren, und relevante Codebeispiele anhängen.

So verwenden Sie vue und Element-plus zum Exportieren und Drucken von Daten So verwenden Sie vue und Element-plus zum Exportieren und Drucken von Daten Jul 18, 2023 am 09:13 AM

So implementieren Sie Datenexport- und Druckfunktionen mit Vue und ElementPlus. Mit der rasanten Entwicklung der Front-End-Entwicklung müssen immer mehr Webanwendungen Datenexport- und Druckfunktionen bereitstellen, um den unterschiedlichen Anforderungen der Benutzer an die Datennutzung gerecht zu werden . Als beliebtes JavaScript-Framework kann Vue bei Verwendung mit der ElementPlus-Komponentenbibliothek problemlos Datenexport- und Druckfunktionen implementieren. In diesem Artikel wird ein Datenexport vorgestellt und

So wählen Sie einen Avatar aus und schneiden ihn in Vue3 zu So wählen Sie einen Avatar aus und schneiden ihn in Vue3 zu May 29, 2023 am 10:22 AM

Der letzte Effekt besteht darin, die VueCropper-Komponente „garnaddvue-cropper@next“ zu installieren. Wenn es sich um Vue3 handelt oder Sie andere Methoden als Referenz verwenden möchten, besuchen Sie bitte die offizielle npm-Adresse. Es ist auch sehr einfach, es in einer Komponente zu referenzieren und zu verwenden. Sie müssen nur die entsprechende Komponente und ihre Stildatei einführen. Ich verweise hier nicht global, sondern nur auf import{userInfoByRequest}from'../js/api ' in meiner Komponentendatei. import{VueCropper}from'vue-cropper&

See all articles