vue3.x 子组件调用父组件方法并获取方法的返回值

vue3子组件调用父组件方法并获取方法的返回值

vue3.x 父子组件通信是经常会遇到的

  1. 父组件给子组件传参可以通过 props 来实现,父组件调用子组件方法和获取子组件数据 通过 xxxRef.value.子组件方法()xxxRef.value.子组件数据 实现
  2. 子组件调用父组件方法使用 emit 来实现
  3. 祖孙组件传值和调用方法使用 provide / Inject 来实现

今天介绍的是vue3.x子组件调用父组件方法并获取方法的返回值如何实现,
正常首先会想到是方法里面勇return返回值,就能获取到,但是实际是行不通的,要使用callback,废话不多说了,直接上代码

父组件:

<div>
	<ChildComponent @getFatherData="getData"></ChildComponent>	
</div>

<script lang="ts" setup>
    import {ref, reactive, onMounted,nextTick} from 'vue'
    import ChildComponent from './childComponent.vue'

	const getData = (callback)=>{
		let data = Math.random();
		//接下来执行一系列逻辑操作之后
		
        callback(data); //返回data值
    }
</script>

子组件childComponent.vue

<div>
	{{childData}}	
	<el-button @click="getDataValue()">获取</el-button>	
</div>

<script lang="ts" setup>
    import {ref, reactive, onMounted,nextTick} from 'vue'
	const childData = ref(0);
	const emit = defineEmits<{
        (event: "getFatherData", data: object): void
    }>()

	const getDataValue = ()=>{
		emit('getFatherData', (val: number) => {childData.value = val });
    }
</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值