vue中使用v-bind=“$attrs“多层组件传值

46 篇文章 1 订阅
29 篇文章 0 订阅

vue组件之间通信,props在多级组件中使用有点麻烦,vue2.4版本提供了另一种方法,使用v-bind="$attrs"

 例如下面的层级关系:

<grandfather>
	<father>
		<grandson>
		</grandson>
	</father>
</grandfather>

祖父组件: <grandfather>

父组件:<father>

祖孙组件:<grandson>

比如说在<grandfather>中传给了<father>组件一些数据

grandfather.vue  //祖父文件

<div>
 <father
    id="1"
	name="小红"
	age="18"
	sex="女"
	weight="90"
	>
 </father>
</div>

然后在<father>组件接收一些想要的值

father.vue  // 父组件

<div>
  // 给孙组件绑定 v-bind="$attrs"
  <grandson v-bind="$attrs">
  </grandson>
</div>

props: {
  id: {
     type: Number,
     default: 0
  },
  name: {
     type: String,
     default: ''
  }
}

注意这里并没有接收age、sex、weight这三个值
那么这三个未被<father>组件接收的值就可以通过v-bind="$attrs"传递给<grandson>组件了

 最后在<grandson>组件接收想要的值

grandson.vue  // 孙组件

<div>
  // 孙组件
</div>

props: {
  age: {
     type: Number,
     default: 0
  },
  sex: {
     type: String,
     default: ''
  },
  weight: {
     type: Number,
     default: 0
  }
}

到此结束。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值