猿问

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

1.父组件给子组件传回调函数过去,在子组件里把数据当参数传进去调用

2.子组件emit数据给父组件,在父组件中使用
有啥区别吗

感觉全部都能用第1种方式啊,为啥还要子组件emit这种方式

目前唯一能想到的 就是 第1种方式,子组件可以修改父组件传过来的方法,感觉不太好

PS: 在子组件尝试修改props的时候,另外发现个问题,比如
this.props.callback = function(){alert('改写了父组件方法')},这样写是可以的改写掉的
但是如果

var a = this.props.callbacka = function(){alert('改写了父组件方法')}

这样是改不掉的,好奇怪,为啥?

这2个问题很困惑,小弟vue新手,还求大神赐教,感激不尽


慕妹3242003
浏览 882回答 1
1回答

德玛西亚99

很简单,很多时候,我们的子组件只需要把值给上一层,不需要做其他的多余的事情。你当然可以把回调传进去……但是为了解耦父子组件,在做这个子组件的时候还是需要emit出来。因为很多时候整个父组件的由无数小的子组件构成的。父组件统一处理逻辑比在子组件单个处理合理的多。。。组件尽量做自己的事,别做别的组件的事。这样,维护也很方便。
随时随地看视频慕课网APP

相关分类

Vue.js
我要回答