Vue父子传值,兄弟传值

终于搞懂这个铁憨憨了!!!

1.父传子

①先给父组件定义个值 msg,msg的值在data中定义

<div>
<h3>父组件发送的信息为:{{msg}}</h3>
</div>
export default {
data () {
    return {
      msg:"我是父组件",
    }
  }
}

②在父组件的元素标签上自定义一个变量

<div>
<h1 :msg="msg" > </h1>
</div>

③在子组件内用props方法来接收

<div>
<h3>接收父组件发来的信息为:{{msg}}</h3>
<div>
export default {
  props:['msg'],
}

在这里插入图片描述

2.子传父

①在子组件 元素标签中写一个自定义事件 我写的button

<div>
    <button @click="toParent">给父亲传值</button>
</div>

②在自定义事件中使用this.$emit方法

 methods:{
    toParent(){
      this.$emit("toParent",this.msg)
   }
}

③在父组件元素标签上用 @自定义事件 = ‘父级事件’来接收

<div>
<h3 @toParent="getChildMsg"></h3>
</div>
methods:{
    getChildMsg(msg){
      this.childMsg = msg
  }
}

在这里插入图片描述
在这里插入图片描述

3.兄弟传值

兄弟组件之间就需要一个中间值,我在这里称为bus。在vue文件main.js中,我们利用 Vue.prototype.bus=new Vue() 来定义,此时我们就有了一个中间量。

①在组件1中 先定义要传的数据,在方法中用this.bus.$emit (“方法” , 传的值)

<div>
    <button @click="toBrother">给兄弟传递信息</button>
</div>
export default {
  data(){
    return{
      to:"哈喽老二,我是组件1"
    } 
  }
}
methods:{
   toBrother(){
     this.bus.$emit("toBrother",this.to)
   }
 }

②在组件2中 用$on来接收传来的值

<div>
    <h3>我来接受兄弟传的值:{{get}}</h3>
</div>
export default {
data(){
    return{
     get:""
    }
  },
  beforeCreate(){
    this.bus.$on("toBrother",msg=>{
      this.get = msg;
    })
  }
}

在这里插入图片描述在这里插入图片描述

ok 组件传值就先到这!!内容可能有些啰嗦…哈哈哈,有问题留言 一起讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值