講解
// 講解: @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;
}