云服务器网:购买云服务器和VPS必上的网站!

vue3如何使用element-plus的dialog

封装成一个函数就能唤起的组件。进行初步封装vue中挂载使用创建一个弹窗组件在列表页面唤醒弹窗多层级弹窗嵌套感谢各位的阅读,以上就是“vue3如何使用element-plus的dialog”的内容了,经过本文的学习后,相信大家对vue3如何使用element-plus的dialog这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。

这篇文章主要讲解了“vue3如何使用element-plusdialog”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3如何使用element-plus的dialog”吧!

优点

摆脱繁琐的 visible 的命名,以及反复的重复 dom。

想法

将 dialog 封装成一个函数就能唤起的组件。如下:

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

基于 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)
}
  
  closeDialog(item, index, args)" />
  

  import { dialogList, closeDialog } from "./index"

在app.vue中挂载

import Mydialog from "@/components/gDialog/index.vue"

使用创建一个弹窗组件

  父弹窗
  打开子dialog
  关闭弹窗


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

在列表页面唤醒弹窗

  列表页
  打开dialog


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

多层级弹窗嵌套

  子弹窗
  关闭弹窗


  import { addDialog } from "@/components/gDialog/index"
  const emit = defineEmits(["close"])
  const closeDialog = () => {
    emit("close", 1, 2, 34)
  }

感谢各位的阅读,以上就是“vue3如何使用element-plus的dialog”的内容了,经过本文的学习后,相信大家对vue3如何使用element-plus的dialog这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云服务器网(yuntue.com),小编将为大家推送更多相关知识点的文章,欢迎关注!

本文来源:https://www.yuntue.com/post/47573.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注