Vue父子组件间传值

Vue父子组件间传值

1. 通过组件名+props直接传值–父向子

父:

<TitleBg :title='til'/>
  ...
data: function () {
  return {
    til: 'hello'
  }
}
...

子:

<div id="title-name">{{title}}</div>
...
props: {
  title: String
}

//或者props: ['title']

2. 通过emit–子向父

父:
父组件通过绑定传递过来的方法来实现数据的接收

<TitleBg @totitle="totitle"/>
  ...
totitle(data){
  window.console.log(data)
}

子:
绑定时间触发,在事件中调用$emit

<div id="my-collect" @click="sendTitle">我的收藏</div>
...
data: function () {
  return {
    info: 'message'
  }
},
methods: {
  sendTitle(){
    this.$emit('totitle',this.info);
  }
}

3. 通过refs调用子组件中的方法

父:

<TitleBg ref="chil"/>
  ...
mounted() {
  this.$refs.chil.child()
}

子:

	methods: {
    child() {
      window.console.log('i am child')
    }
  }

4. 通过$children[]来获取组件的数据

window.console.log(this.$children[2].msg)

5. 通过$parent. 来获取和修改父组件中的数据

mounted() {
  this.$parent.HELLO = 'hello'
  const msg = this.$parent.HELLO;
  window.console.log(msg)
}

6. 通过vuex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值