vue 子组件 emit传递事件和事件数据给父组件

1 子组件通过emit 函数 传递事件名'init-complete 和 数据dateRange

this.$emit('init-complete', dateRange)

2  父组件 创建方法 接收数据

 handleInitComplete(dateRange) {}

3 父组件 创建的方法 和 子组件事件绑定

<component :is="currentComponent" :passObj="passObj" ref="component" @init-complete="handleInitComplete"></component>

4 完整代码

4.1 子组件

<template>
  <div class="child-component">
    <!--子组件的内容-->
  </div>
</template>

<script>
export default {
  data() {
    return {
      dateRange: {}  // 存储子组件发送给父组件的数据
    }
  },
  mounted() {
    // 将子组件的数据通过emit函数发送给父组件
    this.$emit('init-complete', this.dateRange)
  }
}
</script>

4.2 父组件

<template>
  <div class="parent-component">
    <!--父组件的内容-->
    <child-component :passObj="passObj" @init-complete="handleInitComplete"></child-component>
  </div>
</template>

<script>
import ChildComponent from '@/components/ChildComponent.vue'

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      passObj: {}  // 存储要传递给子组件的数据
    }
  },
  methods: {
    handleInitComplete(dateRange) {
      // 处理从子组件传递过来的数据
      console.log(dateRange)
      // 进一步处理数据
    }
  }
}
</script>

ps: 不能传递list 类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值