使用$emit实现子组件调用父组件方法并获取返回值(本人小后端,初学vue,存个笔记)

1 首先暴露子组件
![在这里插入图片描述](https://img-blog.csdnimg.cn/81dfedc840ac4eb2ba4d

2 在父组件中引入子组件
在这里插入图片描述

3 定义父组件中的方法,callback为子组件调用时所需的返回值
在这里插入图片描述

4 在子组件中使用this.$emit(’ aaa ',( bbb)=>{ 此处bbb为所调用父组件方法的返回值})
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中,组件可以通过`$emit`方法组件发送事件,组件可以通过`v-on`指令监听组件的事件并调用相应的方法。如果需要在组件获取组件方法返回并进行赋,可以使用`async/await`结合`$emit`和`v-on`来实现。 具体步骤如下: 1. 在组件中定义一个异步方法,并在该方法调用需要执行的函数并返回结果。 2. 在组件中通过`$emit`方法组件发送事件,并将组件方法名和参数传递给组件。 3. 在组件中通过`v-on`指令监听组件的事件,并在事件处理函数中调用相应的方法并将结果通过`$emit`方法返回组件。 4. 在组件中通过`await`关键字等待组件返回的结果,并将结果赋组件的变量。 代码示例: 组件: ```html <template> <div> <child-component @get-result="getResult"></child-component> <p>组件中的结果:{{ result }}</p> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, methods: { async getResult() { // 调用需要执行的函数并返回结果 const result = await someFunction() // 将结果通过$emit方法返回组件 this.$emit('set-result', result) } }, data() { return { result: '' } } } </script> ``` 组件: ```html <template> <div> <button @click="getResult">获取结果</button> <p>组件中的结果:{{ result }}</p> </div> </template> <script> export default { methods: { getResult() { // 向组件发送事件,并将组件方法名和参数传递给组件 this.$emit('get-result') } }, data() { return { result: '' } }, mounted() { // 监听组件通过$emit方法返回的结果,并将结果赋组件的变量 this.$on('set-result', result => { this.result = result }) } } </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值