vue 父子组件通讯案例

1、父组件:

复制代码
<template>
     <el-button @click="showDialog">显示</el-button>
 
    <div>
      <EquipmentDialog :title="title" :dialogVisible="dialogVisible" @close="close"></EquipmentDialog>
    </div>
  
</template>

<script>

  import EquipmentDialog from '@/components/EquipmentDialog'

  export default {
    name: 'Package',
    data(){
      return {

        title: "测试",
        dialogVisible:false
      }
    },
    components:{
      EquipmentDialog: EquipmentDialog
    },
    methods:{
      showDialog(){
        this.dialogVisible = true;
      },
      close(){
        console.log("关闭--------");
        this.dialogVisible = false;
        console.log('---------',this.dialogVisible)
      }
    }
  }
</script>
复制代码

 

2、子组件

复制代码
<template>
    <div>
      <el-dialog
        :title="title"
        :visible.sync="dialogVisible"
        width="80%"
        :before-close="handleClose">
        <div>
         子组件
        </div>

      </el-dialog>
    </div>
</template>

<script>
  export default {
    name: 'EquipmentDialog',
    props:{
      dialogVisible:{
        type:Boolean,
        default:false
      },
      title:{
        type:String,
        default : ""
      }
    },
    data(){
      return {
        // dialogVisible : false,
        // title:""
      }
    },
    methods:{
      handleClose(){
        // this.dialogVisible = false;
        //调用父组件中的close方法 进行关闭
        this.$emit('close',false);

      }
    }
  }
</script>
复制代码

 

posted @   大空白纸  阅读(184)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示