vue3+ts 在组件中注入provie inject的应用,使用InjectionKey

        1.首先创建一个types.ts文件,放入注入的相关代码,比如注入用户相关信息:

import { provide, inject, InjectionKey, reactive } from 'vue';

export type AccountInfo = {
    uid?: number;
    userName?:string;
 };
   
  export const SYMBOL_ACCOUNT = Symbol("user") as InjectionKey<AccountInfo>;
  
  export const useInjectAccount = () => {
    return inject(SYMBOL_ACCOUNT)!;
  };
  
  export const useProvideAccount = (user:AccountInfo) => {
    const value = reactive(user);
    provide(SYMBOL_ACCOUNT, value);
    return value;
  };

2.在父组件中使用:

import { useProvideAccount } from '../types'

...
const user = reactive({
  uid:1,
  userName:'zlp'
})

useProvideAccount(user)

3.在子组件中:

<span>{{user.userName}}</span>

import { useInjectAccount } from '../types'
const user=useInjectAccount()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值