mirror of
https://gitee.com/ant-design-vue/ant-design-vue.git
synced 2024-11-30 02:57:50 +08:00
fix: token effect error
This commit is contained in:
parent
f429148734
commit
dde2ff140d
@ -2,8 +2,7 @@ import { useStyleInject } from '../StyleContext';
|
||||
import type { KeyType } from '../Cache';
|
||||
import useHMR from './useHMR';
|
||||
import type { ComputedRef, Ref } from 'vue';
|
||||
import { onBeforeUnmount, computed, watch } from 'vue';
|
||||
import eagerComputed from '../../eagerComputed';
|
||||
import { onBeforeUnmount, computed, watch, watchEffect, shallowRef } from 'vue';
|
||||
|
||||
export default function useClientCache<CacheType>(
|
||||
prefix: string,
|
||||
@ -13,7 +12,10 @@ export default function useClientCache<CacheType>(
|
||||
): ComputedRef<CacheType> {
|
||||
const styleContext = useStyleInject();
|
||||
const fullPath = computed(() => [prefix, ...keyPath.value]);
|
||||
const fullPathStr = eagerComputed(() => fullPath.value.join('_'));
|
||||
const fullPathStr = shallowRef('');
|
||||
watchEffect(() => {
|
||||
fullPathStr.value = fullPath.value.join('_');
|
||||
});
|
||||
const HMRUpdate = useHMR();
|
||||
const clearCache = (paths: typeof fullPath.value) => {
|
||||
styleContext.cache.update(paths, prevCache => {
|
||||
@ -28,36 +30,37 @@ export default function useClientCache<CacheType>(
|
||||
return [times - 1, cache];
|
||||
});
|
||||
};
|
||||
|
||||
watch(
|
||||
() => fullPath.value.slice(),
|
||||
(_, oldValue) => {
|
||||
clearCache(oldValue);
|
||||
},
|
||||
);
|
||||
// Create cache
|
||||
watch(
|
||||
fullPathStr,
|
||||
() => {
|
||||
styleContext.cache.update(fullPath.value, prevCache => {
|
||||
const [times = 0, cache] = prevCache || [];
|
||||
[fullPathStr, fullPath],
|
||||
([newStr], [oldStr, oldPath]) => {
|
||||
if (newStr !== oldStr) {
|
||||
if (oldPath) clearCache(oldPath);
|
||||
// Create cache
|
||||
styleContext.cache.update(fullPath.value, prevCache => {
|
||||
const [times = 0, cache] = prevCache || [];
|
||||
|
||||
// HMR should always ignore cache since developer may change it
|
||||
let tmpCache = cache;
|
||||
if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {
|
||||
onCacheRemove?.(tmpCache, HMRUpdate);
|
||||
tmpCache = null;
|
||||
}
|
||||
// HMR should always ignore cache since developer may change it
|
||||
let tmpCache = cache;
|
||||
if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {
|
||||
onCacheRemove?.(tmpCache, HMRUpdate);
|
||||
tmpCache = null;
|
||||
}
|
||||
// console.log('create');
|
||||
const mergedCache = tmpCache || cacheFn();
|
||||
|
||||
const mergedCache = tmpCache || cacheFn();
|
||||
|
||||
return [times + 1, mergedCache];
|
||||
});
|
||||
return [times + 1, mergedCache];
|
||||
});
|
||||
}
|
||||
},
|
||||
{ immediate: true },
|
||||
);
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
clearCache(fullPath.value);
|
||||
});
|
||||
const val = computed(() => styleContext.cache.get(fullPath.value)![1]);
|
||||
const val = computed(() => {
|
||||
return styleContext.cache.get(fullPath.value)![1];
|
||||
});
|
||||
return val;
|
||||
}
|
||||
|
@ -201,7 +201,9 @@ const ConfigProvider = defineComponent({
|
||||
dropdownMatchSelectWidth,
|
||||
getPrefixCls,
|
||||
iconPrefixCls,
|
||||
theme: mergedTheme,
|
||||
theme: computed(() => {
|
||||
return mergedTheme.value ?? parentContext.theme?.value;
|
||||
}),
|
||||
renderEmpty: renderEmptyComponent,
|
||||
getTargetContainer,
|
||||
getPopupContainer,
|
||||
|
@ -42,7 +42,7 @@ export interface Locale {
|
||||
copied?: any;
|
||||
expand?: any;
|
||||
};
|
||||
QRCode: {
|
||||
QRCode?: {
|
||||
expired?: string;
|
||||
refresh?: string;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user