讲解
// 讲解: @close="$emit('update:show1', false)"是子组件跟新父组件中的某值show1,将值变为false
// :visible.sync="visible" visible值为true显示,否者隐藏
// data中如何直接取props中的值,直接this.XXX
//使用watch监听的原因是因为,解决框只能购打开一次。
组件.vue
<template>
<div>
<el-dialog
title="title"
:visible.sync="visible"
@close="$emit('update:show1', false)"
>
<div>this is a dialog</div>
</el-dialog>
</div>
</template>
<script>
export default {
data () {
return {
visible: this.show1
};
},
props: {
show1: {
type: Boolean,
default: false
}
},
watch: {
show1 () {
this.visible = this.show1;
}
}
}
</script>
使用组件
<mask-add :show1.sync="show1"></mask-add>
<el-button @click="open">click</el-button>
data(){
retuen{
show1: false,
}
}
open () {
this.show1 = true;
}