element组件库中推荐用:visible.sync="dialogVisible"
如果想要对el-dialog组件进行二次封装只是控制弹框显示和隐藏可以使用v-model进行数据绑定,代码量更少
父组件中
<template>
<div id="app">
<el-button>控制弹窗</el-button>
<ShowDialog v-model="isShow"></ShowDialog>
</div>
</template>
<script>
import ShowDialog from "@/components/HelloWorld.vue";
export default {
components: { ShowDialog },
data() {
return {
isShow: false,
};
}
};
</script>
子组件
<template>
<el-dialog :visible="value" width="30%" @close="handleClose" class="home">
</el-dialog>
</template>
<script>
export default {
props: {
value: {
required: true,
type: Boolean,
},
},
methods: {
handleClose() {
this.$emit("input", false);
},
},
};
</script>
v-model是一个语法糖 等同于 :value="isShow" @input="isShow =$event.target.value"