- 父子组件传值:
v-bind
- 子传父:
v-on
兄弟组件之间共享数据:
EventBus
先创建中央事件总线,在
src/utils
下创建一个eventBus.js
: ```js /**
- 事件车 */ import Vue form ‘vue’ export default new Vue() ``` eventBus 中只创建了一个新的Vue实例,以后它就承担起啦组件之间通信的桥梁,也就是中央事件总线。
在触发事件的组件里,引入 eventBus 这个事件总线,接着添加一个按钮并绑定一个点击事件
import eventBus form '@src/utils/eventBus'
// 注册点击事件,用来传递数据
hanldleClick(){
eventBus.$emit('updateCart', data)
}
再创建一个兄弟组件。接收值,实现同步刷新和其他处理,引入eventBus 事件总线,并同步刷新
import eventBus form '@src/utils/eventBus'
// 注册事件,用来接受数据(监听上面自定义的函数)
eventBus.$on('updateCart',(data)=>{
if(data === 'a'){
}
})
$on事件是不会自动清除销毁的,需要我们手动来销毁,要通过eventBus.$off来关闭