当前位置:首页 > 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中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <…

vue路由实现内部切换

vue路由实现内部切换

Vue 路由实现内部切换的方法 Vue Router 是 Vue.js 官方的路由管理器,用于实现单页应用(SPA)的页面切换。以下是几种常见的内部路由切换方式: 使用 <router-lin…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue聊天实现

vue聊天实现

Vue 聊天应用实现步骤 创建 Vue 项目 使用 Vue CLI 或 Vite 初始化项目,安装必要依赖(如 Vue 3、Element UI 或 Vuetify 用于 UI 组件)。 npm…

实现vue组件

实现vue组件

Vue 组件的基本实现 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种方式: 单文件组件 (SFC) 使用 .vue 文件格式,…

vue 实现blog

vue 实现blog

Vue 实现博客的基本步骤 使用 Vue 实现博客可以分为前端和后端两部分,前端使用 Vue.js 框架,后端可以选择 Node.js、Python 或其他服务端语言。以下是一个基于 Vue 的博客实…