当前位置:首页 > 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>

对应的数据:

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

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

vue element实现弹出窗口

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

相关文章

vue实现查询替换

vue实现查询替换

Vue 实现查询替换功能 在 Vue 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

antd vue 实现

antd vue 实现

使用 Ant Design Vue 实现功能 Ant Design Vue 是基于 Vue.js 的 UI 组件库,提供了丰富的组件和设计规范。以下是一些常见功能的实现方法。 安装 Ant Des…

vue 实现pdf

vue 实现pdf

在Vue中实现PDF功能 在Vue项目中实现PDF功能通常涉及PDF生成、预览或下载。以下是几种常见实现方式: 使用vue-pdf库预览PDF 安装依赖: npm install vue-…

vue权限实现

vue权限实现

Vue 权限实现方案 基于路由的权限控制 通过路由守卫实现权限验证,在路由配置中添加meta字段标记权限要求。在router.beforeEach中检查用户权限与路由要求的匹配情况。 // rout…

vue实现全景

vue实现全景

Vue 实现全景效果的方法 使用 Vue 实现全景效果通常需要结合第三方库或框架,以下是几种常见的方法: 使用 Three.js 和 Vue-Three.js Three.js 是一个强大的 3D…