一般有三种传值方式:1.父传子、2.子传父、3.兄弟组件之间通信
父组件 :引入 注册 声明 子组件:用props来接收父组件传过来的值 用$emit来使用
2、EventBus
创建一个空的 vue 并暴露出去,这个作为公共的 bus,即当作两个组件的桥梁,在两个兄弟组件中分别引入刚才创建的bus,在组件 A 中通过 bus. e m i t ( ’ 自 定 义 事 件 名 ’ , 要 发 送 的 值 ) 发 送 数 据 , 在 组 件 B 中 通 过 b u s . emit(’自定义事件名’,要发送的值)发送数据,在组件 B中通过 bus. emit(’自定义事件名’,要发送的值)发送数据,在组件B中通过bus.on(‘自定义事件名‘,function(v) { //v 即为要接收的值 })接收数据
3、Vuex 适用于 父子、隔代、兄弟组件通信
4、provide / inject 适用于 隔代组件通信
最上层组件(祖先组件)中通过 provider 来提供变量,然后在子孙组件中通过 inject 来注入变量。 provide / inject API 主要解决了跨级组件间的通信问题,
不过它的使用场景,主要是子组件获取上级组件的状态,跨级组件间建立了一种主动提供与依赖注入的关系。