useConfig 是为了存储配置文件,方便读取配置文件,减少请求次数。
js
import { shallowReactive } from "vue";
import useRequest from "./request";
import { useStorage } from "./storage";
const _localStorage = useStorage(localStorage);
const { readFile } = useRequest();
export const useConfig = () => {
const config = shallowReactive(
new Map(_localStorage.get("config") || []) || new Map()
);
const setConfig = async (key) => {
try {
// 依照路径作为key
const data = await readFile(key);
config.set(key, data);
} catch (error) {
console.log(error);
}
};
const getConfig = async (key) => {
if (!config.has(key)) {
await setConfig(key);
}
return config.get(key);
};
const removeConfig = (key) => {
config.delete(key);
};
// watch(config, (val) => {
// console.log(val)
// _localStorage.set('config', [...val])
// })
return { config, setConfig, getConfig, removeConfig };
};