为了账号安全,请及时绑定邮箱和手机立即绑定

vue父子组件props传回调函数和子组件emit的区别

vue父子组件props传回调函数和子组件emit的区别

MMTTMM 2019-05-12 12:10:35
1.父组件给子组件传回调函数过去,在子组件里把数据当参数传进去调用和2.子组件emit数据给父组件,在父组件中使用有啥区别吗感觉全部都能用第1种方式啊,为啥还要子组件emit这种方式目前唯一能想到的就是第1种方式,子组件可以修改父组件传过来的方法,感觉不太好PS:在子组件尝试修改props的时候,另外发现个问题,比如this.props.callback=function(){alert('改写了父组件方法')},这样写是可以的改写掉的但是如果vara=this.props.callbacka=function(){alert('改写了父组件方法')}这样是改不掉的,好奇怪,为啥?这2个问题很困惑,小弟vue新手,还求大神赐教,感激不尽
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

很简单,很多时候,我们的子组件只需要把值给上一层,不需要做其他的多余的事情。你当然可以把回调传进去……但是为了解耦父子组件,在做这个子组件的时候还是需要emit出来。因为很多时候整个父组件的由无数小的子组件构成的。父组件统一处理逻辑比在子组件单个处理合理的多。。。组件尽量做自己的事,别做别的组件的事。这样,维护也很方便。
                            
查看完整回答
1 反对 回复 2019-05-12
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

感觉全部都能用第1种方式啊,为啥还要子组件emit这种方式
因为除了父子组件,还有兄弟组件,而event的方式只是也适用于父子组件而已。
这样是改不掉的,好奇怪,为啥?
此时只是a指向了this.props.callback,跟vue没有发生任何关系,重新赋值也只是把a指向了别的东西而已。
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 2669 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信