大概举例
html框架采用饿了么dialog对话框。–(饿了么中的dialog是在同一个页面,下面讲的是当点击按钮和弹框分别处于两个组件时)
在父组件里点击新增按钮,弹出弹窗----子组件是一个弹窗,点击弹窗的X或者取消,弹框可以正确消失
父组件:
// .sync是vue中用于实现简单的“双向绑定”的语法糖,在平时的开发中是非常使用的。
<parent>
<child :show.sync="dialogDisplay"></child>
</parent>
<script>
import child from '文件路径'
export default{
name:'parent',
components:{
child
},
data(){
dialogDisplay:false // 新增方案弹框
},
....懒得写
}
</script>
点击父组件的新增按钮,赋值:
this.dialogDisplay=true
子组件:
<el-dialog @close="closeDialog">
...
<span slot='footer' class="xxx">
<el-button ...>...确认<el-button>
<el-button ..@click="closeDialog">...取消<el-button>
</span>
</el-dialog>
watch:{
show(v){
if(v==false){
this.closeDialog()
}
}
}
closeDialog(){
this.clear() // 具体问题具体分析
....
// 对弹窗点击x或者取消时,弹窗会正确消失
this.$emit('update:show',false)
}