Vue祖先组件向子孙组件通信(provide / inject)

本文讲解了Vue中祖先组件向子孙组件通信的provide/inject机制,演示了如何在祖先组件中提供数据,并在子孙组件中注入接收。强调了此机制在组件间通信的优势及合理使用的重要性。

Vue祖先组件向子孙组件通信(provide / inject)

说明:这对选项需要一起使用,允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深(这也是通过props传值不好实现的地方),并在起上下游关系成立的时间里始终生效。

提示:provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。

demo:

祖先组件:

export default {
  name: "parent",
  data() {
    return {
       name: "Flying bird's blog"
    }
  },
  provide() {
    return {
      provideData: this.name // 祖先组件提供数据
    }
  }
}

子孙组件:

export default {
  name: "child",
  inject: ["provideData"], // 子孙组件接受数据
  created () {
    console.log(this.provideData) // Flying bird's blog
  }
}

 正确使用provide和inject

1. provide/inject是解决组件之间的通信问题的利器,不受层级结构的限制。但也不是随便去滥用,通信代表着耦合。

2.provide/inject主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。

科学上网点我http://jiasd.us/11667

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值