Vue中组件传值

189 阅读1分钟

1.父传子 自定义属性props
1)子组件在props里面收一下
2)父组件在data里面声明要传的数据
3)父组件在子组件的占位符标签里面传一下

image.png 2.子传父 自定义事件
1)在父组件的子组件占位符里先绑定一个自定义事件
2)在methods里面定义这个绑定的自定义事件
3)在子组件中通过this.$emit(自定义事件名,参数)触发自定义事件

image.png 3.兄弟之间互传 EventBus

1.建一个eventBus.js文件
import vue from 'vue'
//向外共享一个vue的实例
export default new Vue()

2.(兄弟A组件,数据发送方)
import bus from './eventBus.js'

export default{
data(){
    return{
        msg:'Hello Vue.js'
        }
    },
    methods:{
        sendMsg(){
            bus.$emit('share',this.msg)
            }
      }
}

3.(兄弟B组件,数据接受方)
import bus from './eventBus.js'

export default{
data(){
    return{
        msgFromLeft:''
        }
    },
    created(){
            bus.$on('share',val =>{
                this. msgFromLeft = val
            })
            
      }
}