当前位置:首页 > VUE

vue element实现弹出窗口

2026-01-20 13:32:29VUE

使用 Vue 和 Element UI 实现弹出窗口

Element UI 提供了 el-dialog 组件用于实现弹出窗口功能,以下是一个完整的实现示例:

基本弹窗实现

安装 Element UI(如果尚未安装):

npm install element-ui -S

在 Vue 项目中注册 Element UI:

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

模板部分:

<template>
  <div>
    <el-button type="primary" @click="dialogVisible = true">打开弹窗</el-button>

    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%">
      <span>这是一段内容</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

脚本部分:

<script>
export default {
  data() {
    return {
      dialogVisible: false
    }
  }
}
</script>

自定义弹窗内容

弹窗内容可以完全自定义:

<el-dialog
  title="自定义内容"
  :visible.sync="dialogVisible"
  width="50%">
  <el-form :model="form">
    <el-form-item label="姓名">
      <el-input v-model="form.name"></el-input>
    </el-form-item>
    <el-form-item label="年龄">
      <el-input v-model="form.age"></el-input>
    </el-form-item>
  </el-form>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取消</el-button>
    <el-button type="primary" @click="handleSubmit">提交</el-button>
  </span>
</el-dialog>

对应的数据和方法:

data() {
  return {
    dialogVisible: false,
    form: {
      name: '',
      age: ''
    }
  }
},
methods: {
  handleSubmit() {
    console.log(this.form)
    this.dialogVisible = false
  }
}

弹窗属性配置

el-dialog 支持多种配置选项:

<el-dialog
  title="可配置弹窗"
  :visible.sync="dialogVisible"
  width="60%"
  :close-on-click-modal="false"
  :show-close="false"
  :before-close="handleClose">
  内容区域
</el-dialog>

对应的关闭处理方法:

methods: {
  handleClose(done) {
    this.$confirm('确认关闭?')
      .then(_ => {
        done()
      })
      .catch(_ => {})
  }
}

全屏弹窗

实现全屏弹窗:

<el-dialog
  title="全屏弹窗"
  :visible.sync="dialogVisible"
  fullscreen>
  全屏内容
</el-dialog>

嵌套弹窗

支持弹窗内再打开弹窗:

<el-dialog
  title="外层弹窗"
  :visible.sync="outerVisible"
  width="50%">
  <el-button @click="innerVisible = true">打开内层弹窗</el-button>
  <el-dialog
    title="内层弹窗"
    :visible.sync="innerVisible"
    append-to-body
    width="30%">
    内层内容
  </el-dialog>
</el-dialog>

对应的数据:

vue element实现弹出窗口

data() {
  return {
    outerVisible: false,
    innerVisible: false
  }
}

以上示例展示了 Vue 和 Element UI 实现弹窗的基本方法和进阶用法,可以根据实际需求选择合适的实现方式。

标签: 弹出窗口vue
分享给朋友:

相关文章

vue  实现tab

vue 实现tab

实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染完成。以下是两种常见方法: 使用 v-if 或 v-show 实现条件渲染 通过绑定 currentTab 变量…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…

vue实现分步

vue实现分步

Vue 实现分步功能 在 Vue 中实现分步功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 通过动态组件切换不同的步骤内容,结合 v-if 或 component 标签实现分步逻辑。…

vue实现uuid

vue实现uuid

使用 uuid 库生成 UUID 在 Vue 项目中,可以使用 uuid 库来生成 UUID。安装依赖: npm install uuid 在 Vue 组件中使用: import { v4 as…

vue实现openoffice

vue实现openoffice

Vue 中集成 OpenOffice 的实现方法 在 Vue 项目中集成 OpenOffice 通常需要通过后端服务或现有库实现文档的预览和编辑功能。以下是几种常见的实现方式: 使用 OnlyOff…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…