VUE 2.X
1.组件之间的数据共享
1)父组件向子组件共享数据
父组件向子组件共享数据需要使用自定义属性,示例代码:
// 父组件通过v-bind绑定属性向子组件传值
<Son :msg="message" :user="userInfo"></Son>
data(){
return {
message:'hello.',
userinfo:{name:'zs'}
}
}
// 子组件
<template>
<div>
<p>Son组件</p>
<p>父组件传递过来的msg值:{
{ msg }}</p>
<p>父组件传递过来的user信息:{
{ user }}</p>
</div>
</template>
props:['msg','user']
2)子组件向父组件传值
子组件向父组件共享数据使用自定义事件.示例代码:
// 子组件
export default{
data(){
return {count:0}
},
methods:{
add(){
this.count += 1
// 修改数据时,通过$emit()方法触发自定义事件
this.$emit('numchange',this.count)
}
}
}
// 父组件
// 监听子组件的numchange事件
<Son @numchange="getNewCount"></Son>
export default{
data(){
return {countFromSon:0}
},
methods:{
add(val){
this.countFromSon = val
}
}
}
3)兄弟组件之间数据共享
- 使用步骤:
①创建eventBus.js模块,并向外共享一个Vue的实例对象
②在数据发送方,调用bus.$emit('事件名称',要发送的数据)方法触发自定义事件
③在数据接收方,调用bus.$on('事件名称',事件处理函数)方法注册一个自定义事件
在vue2.x中,兄弟组件之间数据共享方案是eventBus.
// eventBus.js
import Vue from 'v