vue 方法获取返回值_vue--子组件调用父组件方法并获取返回值

本文介绍了在Vue项目中,如何从子组件正确地调用父组件方法并获取返回值。文章详细讲解了两种常见的方法:1. 使用`this.$parent`,虽然可以解决问题,但不推荐,因为对组件使用者不友好;2. 通过`this.$emit`配合回调函数,父组件执行回调并传递返回值给子组件,这是更推荐的方式。此外,还提到了通过props将父组件方法传给子组件的第三种方式。
摘要由CSDN通过智能技术生成

项目中渲染页面列表,遇到与后台接口联调返回的字段需要翻译,使用的组件是自定义组件Table,类似ElementUI中el-table组件的formatter

首先我们想到的是$emit调用父组件取返回值,this.$emit(方法名, 传参1, 传参2),但是此方法的返回值是vue对象,而不是父组件方法的return值(错误代码就不展示了)

1、尝试曲线救国,使用this.$parent

子组件直接调用父组件方法:

translateFilter(columnsItem,dataItem){return this.$parent.translateFilter({

key:columnsItem.key,

data:dataItem[columnsItem.key]

})

},

en...解决了。但是不尽人意,这种方法开发组件对使用者很不友好。

2、this.$emit方法,用回调函数作为参数,父组件里执行该回调函数,返回值后给子组件,然后子组件再接收

子组件调用父组件方法,执行回调函数:

translateFil(columnsItem,dataItem){

let itemName= null;this.$emit('translateFilter',{

key:columnsItem.key,

data:dataItem[columnsItem.key]

}, val=> { itemName =val })returnitemName

},

这里注意是es6的写法ÿ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值