需求:在引入组件弹框时想获取关闭事件,并对数据做出处理
编写弹框组件:
<template>
<!---@close是elementUI的关闭事件--->
<el-dialog title="消息通知" :visible.sync="newsDialog" @close="newsClose">
<div slot="header" class="el-dialog__header">123456</div>
<div slot="contain">
<el-row>
<el-col :span="10">菜单</el-col>
<el-col :span="14">
<el-tabs>
<el-tabs-span>1123</el-tabs-span>
<el-tabs-span>6554646</el-tabs-span>
</el-tabs>
</el-col>
</el-row>
</div>
</el-dialog>
</template>
<script>
export default{
props:{
newsTips:Boolean
},
data(){
return{
newsDialog:false,
}
},
watch: {
newsTips: function(newval) {
this.newsDialog = newval
}
},
methods:{//这里的this.$emit('newsclose');是执行父组件调用时使用的@newsclose自定义事件
newsClose:function(){
this.$emit("newsclose");
}
}
}
</script>
父组件引入:
<template>
<!-- 消息弹框 -->
<div>
<a class="right-menu-item" @click="newsTips"><i class="el-icon-chat-dot-round"></i></a>
<!----@newsclose 必须与子组件的this.$emit('newsclose')一样---->
<HomeNews :newsTips="newsVisable" @newsclose="newsTipsClose"></HomeNews>
</div>
</template>
<script>
//引入组件
import HomeNews from '@/components/homeNews';
export defualt{
components: {
HomeNews
},
data: function() {
return {
newsVisable:false
}
},
methods: {
//消息弹出框
newsTips:function(){
this.newsVisable = true;
},
newsTipsClose:function(){
this.newsVisable = false;
},
}
}
</script>
版权声明:本文为qq_40128591原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。