elementui弹窗
ElementUI 弹窗使用指南
ElementUI 提供了 el-dialog 组件用于实现弹窗功能,支持自定义标题、内容、按钮及动画效果。
基本用法
通过 v-model 控制弹窗显示/隐藏状态:
<el-button @click="dialogVisible = true">打开弹窗</el-button>
<el-dialog v-model="dialogVisible" title="提示">
<span>这是一段内容</span>
</el-dialog>
<script>
export default {
data() {
return {
dialogVisible: false
}
}
}
</script>
自定义内容
在插槽内添加任意 HTML 或组件:
<el-dialog v-model="visible" title="自定义内容">
<el-form>
<el-form-item label="用户名">
<el-input v-model="username"></el-input>
</el-form-item>
</el-form>
</el-dialog>
属性配置
常用属性:
width:设置弹窗宽度(默认 50%)fullscreen:全屏显示top:顶部距离(默认 15vh)modal:是否显示遮罩层close-on-click-modal:点击遮罩层关闭弹窗
<el-dialog
v-model="visible"
title="配置示例"
width="30%"
:modal="false">
</el-dialog>
事件处理
常用事件:
open:弹窗打开时触发close:弹窗关闭时触发closed:弹窗关闭动画结束时触发
<el-dialog
v-model="visible"
@open="handleOpen"
@close="handleClose">
</el-dialog>
表单验证
结合 el-form 实现提交验证:
<el-dialog v-model="formVisible">
<el-form :model="form" :rules="rules" ref="formRef">
<el-form-item prop="name" label="名称">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="formVisible = false">取消</el-button>
<el-button type="primary" @click="submitForm">提交</el-button>
</template>
</el-dialog>
<script>
export default {
methods: {
submitForm() {
this.$refs.formRef.validate(valid => {
if (valid) {
// 提交逻辑
}
})
}
}
}
</script>
嵌套弹窗
支持多层弹窗嵌套,建议最多不超过 3 层:
<el-dialog v-model="outerVisible">
<el-button @click="innerVisible = true">打开内层弹窗</el-button>
<el-dialog v-model="innerVisible" append-to-body></el-dialog>
</el-dialog>
注意事项
- 需要设置
append-to-body属性避免嵌套弹窗的定位问题 - 大量表单内容建议使用
el-drawer抽屉组件替代 - 频繁操作的弹窗建议添加
destroy-on-close属性优化性能 - 移动端适配可通过 CSS 媒体查询调整宽度和布局







