VUE实现Provide的计算属性

本文介绍了如何在Vue中使用Provider和inject进行父子组件间的跨代传值,包括创建计算属性的Provider示例,以及如何处理injectionnotfound告警,通过设置默认值来确保正确注入。
摘要由CSDN通过智能技术生成

通过此篇可以学到:

  • 如何使用Provider+inject进行“跨代”传值
  • 如何实现一个计算属性的Provider
  • 如何解决告警“injection "xxxxx" not found. ”

一、描述

        目前需要创建一个计算属性传入Provide,并且能够被其他组件Inject

二、实现

父组件

...
import {computed} from 'vue';
//提供一个计算属性
provide() {
    return {
      tabName: computed(()=> this.active)
    }
},
data() {
    return {active: 'tab1'}
}

子孙组件

...
//注册父组件提供的tabName
inject: {
    tabName: {
      value: 'tabName',
      default: null
    }
}

三、解决injection告警

告警:injection "xxxxx" not found. 

有告警的写法:

inject:['tabName']

 解决方法:

        等级default: null

inject: {
  tabName: { value: 'tabName', default: null }
}

原因:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值