feat(projects): 添加reload context

This commit is contained in:
Soybean
2021-09-18 22:16:31 +08:00
parent 99adbc5a30
commit 03ebd49c86
17 changed files with 354 additions and 228 deletions

View File

@ -1,7 +1,7 @@
import useAppTitle from './useAppTitle';
import useCreateContext from './useCreateContext';
import useContext from './useContext';
import useRouterChange from './useRouterChange';
import useRouteParam from './useRouteParam';
import useRouteQuery from './useRouteQuery';
export { useAppTitle, useCreateContext, useRouterChange, useRouteParam, useRouteQuery };
export { useAppTitle, useContext, useRouterChange, useRouteParam, useRouteQuery };

View File

@ -0,0 +1,20 @@
import { provide, inject } from 'vue';
import type { InjectionKey } from 'vue';
/** 创建共享上下文状态 */
export default function useContext<T>(contextName: string = 'context') {
const injectKey: InjectionKey<T> = Symbol(contextName);
function useProvide(context: T) {
provide(injectKey, context);
}
function useInject() {
return inject(injectKey)!;
}
return {
useProvide,
useInject
};
}

View File

@ -1,20 +0,0 @@
import { provide, inject } from 'vue';
import type { InjectionKey } from 'vue';
/** 创建共享上下文状态 */
export default function useCreateContext<T>(contextName: string = 'context') {
const injectKey: InjectionKey<T> = Symbol(contextName);
function useProvider(shareState: T) {
provide(injectKey, shareState);
}
function useContext() {
return inject(injectKey);
}
return {
useProvider,
useContext
};
}

View File

@ -1,2 +1,2 @@
export { useAppTitle, useCreateContext, useRouterChange, useRouteParam, useRouteQuery } from './common';
export { useAppTitle, useContext, useRouterChange, useRouteParam, useRouteQuery } from './common';
export { useCountDown, useSmsCode } from './business';