So verwenden Sie den Dialog von element-plus in vue3
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) } })
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) }
<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>
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>
in app.vue
Verwenden SieErstellen 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<!-- 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>
<!-- 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🎜<!-- 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) } }) }
<!-- 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>
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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 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: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 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.

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

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 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

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&
