Vue2中Provide和Inject和Vue3中Provide和Inject爷孙组件传值响应式使用方法

博客围绕Vue项目中爷孙组件的处理展开。介绍了Vue2中父组件返回自定义函数、子组件用computed处理以实现响应式数据处理;还提到Vue3方法更简洁,直接用ref和reactive方法进行响应式数据处理,可使爷孙组件值实现响应式更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在vue项目开发时,如果遇到爷孙组件时,应该如何快速处理呢?

vue2中使用方法:

爷组件:

data() {
    return {
        name: "卷儿"
    }
},
provide: function() {
    return {
        newName: () => this.name
    }
}

孙组件:

inject: ['newName'],
computed: {
    hnewName() {
        return this.newName()
    }
}

父组件返回一个自定义的函数,子组件进行computed来进行处理,来实现响应式数据处理。

vue3的使用方法:

相比于vue2,vue3方法更简洁,直接使用ref 和 reactive方法,来进行响应式数据处理。

爷组件:

import { reactive,provide,ref } from 'vue';
provide('location', ref('北极'))
provide('geolocation', reactive({
  longitude: 90,
  latitude: 135
}))

孙组件:

import { inject} from 'vue';
const geolocation = inject("geolocation");
const location = inject("location");

这样爷孙组件无论任何一个组件内的值发生改变,两个组件的值都会进行响应式的数据更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值