vue2+elementUi 弹窗二次封装
在Vue2项目中,可以通过二次封装Element UI的el-dialog
组件来创建一个弹窗。以下是一个简单的例子:
- 创建一个新的组件
MyDialog.vue
:
<template>
<el-dialog
:title="title"
:visible.sync="visible"
:width="width"
:before-close="handleClose">
<slot></slot>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="handleConfirm">确 定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
props: {
title: String,
width: String,
visible: Boolean
},
methods: {
handleClose() {
this.$emit('update:visible', false);
},
handleConfirm() {
this.$emit('confirm');
this.handleClose();
}
}
};
</script>
- 在父组件中使用
MyDialog
组件:
<template>
<div>
<my-dialog
:title="dialogTitle"
:width="'30%'"
:visible="dialogVisible"
@update:visible="value => dialogVisible = value"
@confirm="handleConfirm">
<!-- 这里放置你的内容 -->
<p>这里是弹窗内容</p>
</my-dialog>
</div>
</template>
<script>
import MyDialog from './MyDialog.vue';
export default {
components: {
MyDialog
},
data() {
return {
dialogTitle: '提示',
dialogVisible: false
};
},
methods: {
handleConfirm() {
// 处理确认事件
console.log('确认操作');
}
}
};
</script>
在这个例子中,MyDialog
组件接收title
、width
和visible
作为props,并且定义了一个handleClose
方法来关闭弹窗,以及一个handleConfirm
方法来处理确认事件。父组件通过dialogVisible
控制弹窗的显示与隐藏,并在handleConfirm
方法中处理用户的确认操作。
评论已关闭