vue2父子组件使用elementui弹窗
时间: 2023-10-10 10:06:49 浏览: 129
vue+element-ui使用
可以通过在父组件中引入 `el-dialog` 组件,并在子组件中触发父组件中的方法来实现弹窗效果。
例如,在父组件中,可以定义一个 `el-dialog` 组件和一个触发弹窗的按钮:
```html
<template>
<div>
<el-button @click="showDialog">打开弹窗</el-button>
<el-dialog :visible.sync="dialogVisible">
<slot></slot>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
dialogVisible: false
}
},
methods: {
showDialog() {
this.dialogVisible = true
}
}
}
</script>
```
然后,在子组件中,可以通过 `$emit` 方法触发父组件中的 `showDialog` 方法来打开弹窗:
```html
<template>
<div>
<el-button @click="$emit('show-dialog')">打开弹窗</el-button>
</div>
</template>
```
在父组件中使用子组件时,需要监听子组件的 `show-dialog` 事件,并调用 `showDialog` 方法:
```html
<template>
<div>
<my-component @show-dialog="showDialog"></my-component>
<el-dialog :visible.sync="dialogVisible">
<slot></slot>
</el-dialog>
</div>
</template>
<script>
import MyComponent from './MyComponent.vue'
export default {
components: {
MyComponent
},
data() {
return {
dialogVisible: false
}
},
methods: {
showDialog() {
this.dialogVisible = true
}
}
}
</script>
```
这样,当在子组件中点击按钮时,就会触发父组件中的 `showDialog` 方法,打开弹窗。同时,可以在弹窗中插入子组件的内容,从而实现父子组件间的交互。
阅读全文