当前位置:首页 > 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实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: n…

vue实现微博印象

vue实现微博印象

实现微博印象功能的核心思路 微博印象功能通常指用户发布微博后,系统自动分析文本内容并提取关键词或标签,以可视化形式展示。Vue实现该功能需要结合文本分析、关键词提取和前端渲染技术。 文本分析与关键词…

vue实现方法

vue实现方法

Vue 实现方法 Vue 是一种流行的前端框架,用于构建用户界面和单页应用。以下是几种常见的 Vue 实现方法: 创建 Vue 实例 通过 new Vue() 创建一个 Vue 实例,传入配置对象,…

vue实现modal

vue实现modal

Vue 实现 Modal 弹窗组件 使用 Vue 实现 Modal 弹窗组件可以通过多种方式,包括原生 Vue 组件、第三方库或自定义指令。以下是几种常见方法: 原生 Vue 组件实现 创建一个基础…

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配。…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…