Vue项目中如何处理组件之间的各种通信?

父子组件利用props通信:

js
// 父组件
<son :msg="message"></son>

// 子组件
props: {
  msg: String 
}

父子组件利用ref通信:

js
// 父组件
<son ref="son"></son>

// 通过ref访问子组件实例
this.$refs.son.doSomething()

父子组件利用emit通信:

js
// 子组件 
this.$emit('someEvent', data)

// 父组件
<son @someEvent="doSomething"></son>

methods: {
  doSomething(data) { ... }  
}

利用 event bus 分发事件完成非父子关系的通信:

js
// bus.js
export default new Vue()

// componentA
import bus from './bus'
bus.$emit('eventName', data)

// componentB 
import bus from './bus' 
bus.$on('eventName', (data) => { ... })

利用provide/inject实现祖代后代组件通信:

js
// 祖先组件
provide: {
  name: 'blue'  
}

// 后代组件 
inject: ['name']
以上是编程学习网小编为您介绍的“Vue项目中如何处理组件之间的各种通信?”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。

本文标题为:Vue项目中如何处理组件之间的各种通信?

基础教程推荐