Vue组件间通信方法大全(父子,兄弟,子孙组件)- 学习笔记

最近在掘金看了一篇
30 道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)
然后发现里面总结了Vue中组件间传值的多种方式(不详细),不知道你们会不会和笔者一样,还是停留在之前的几种方式(props/ $emit,$emit/$on,vuex)。上面的文章提到了新的方式,下面笔者会详细解释,给出示例。

1、props(父组件传给子组件)

新建父组件father.vue
Vue组件间通信方法大全(父子,兄弟,子孙组件)- 学习笔记
注意标记的地方,同时不要忘了引入子组件跟注册子组件哟

新建子组件child.vue
Vue组件间通信方法大全(父子,兄弟,子孙组件)- 学习笔记
在子组件中使用props接受,就可以拿来使用了。
传递多个,在props添加就行了,比如[‘msg’,‘msgd’]这样的形式,当然也要在父组件加多一个:msgd=“msgd”;命名不一定重复,对应就行,个人建议一样好一点。

2、$emit(子组件传给父组件)

依旧在子组件中,跟上面的代码写在一起了,注意区分
Vue组件间通信方法大全(父子,兄弟,子孙组件)- 学习笔记
$emit():第一个参数是触发的方法,第二个参数是要传给子组件的值
父组件以@+$emit里面的方法receive(这里必须子组件名字一样)的形式接收
Vue组件间通信方法大全(父子,兄弟,子孙组件)- 学习笔记
childmsg就是子组件传过来的值,注意上面handleReceive($event)中的$event,若是写成其他诸如handleReceive(message)之类的传参会报错。

3、EventBus ($emit / $on)(父子,兄弟,隔代组件)