Vue.js 组件通信

一.、父传子

父组件引入子组件
子组件 在 props 定义需要接收的数据

二、子传父

父组件引入子组件
子组件 this.emit('事件',传递的数据) 父组件 this.emit('事件',console.log(传递的数据))

三、非父子组件通信

eventBus

1、 新建 bus.js

import Vue from 'vue';
export default new vue()

要通信的组件引入

import bus from './bus.js'

在组件中传递
bus.$emit('event',value)
在组件中接收
bus.$emit('event',value)

2、使用 provide/inject

tab > tab-head - tabs-item
根组件中

data(){
  return {
     eventBus:new Vue()
  }
},
provide(){
   return {
     eventBus: this.eventBus
   }
}

子孙组件中

inject: ['eventBus']
使用 eventBus

在组件中传递

eventBus.$emit('event',value)

在组件中接收

eventBus.$emit('event',value)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容