storage
用于数据本地存存储
js
import { ref, unref } from "vue";
import Cookies from "js-cookie";
/**
* @description: 用于存储数据的cookie存储
* @return {*}
*/
export const cookiesStorage = {
/**
* @description: 存储cookie
* @param {*} key key作为存储的键
* @param {*} value value作为存储的值
* @param {*} options options作为存储的配置
* @return {*}
*/
set(key, value, options) {
const data = unref(value);
return Cookies.set(key, encodeURIComponent(JSON.stringify(data)), options);
},
/**
* @description: 获取cookie
* @param {*} key 同上
* @return {*}
*/
get(key) {
return JSON.stringify({
accessToken: Cookies.get(key),
});
},
/**
* @description: 移除cookie
* @param {*} key 同上
* @return {*}
*/
remove(key) {
Cookies.remove(key);
},
};
/**
* @description: 用于存储数据的storage存储
* @param {*} storage
* @return {*}
*/
function useCommonStorage(storage) {
const set = (key, value) => {
let data = unref(value);
if (data) {
storage.setItem(key, encodeURIComponent(JSON.stringify(data)));
} else {
data = JSON.parse(decodeURIComponent(storage.getItem(key)));
}
return data;
};
const remove = (key) => {
storage.removeItem(key);
};
const get = (key) => JSON.parse(decodeURIComponent(storage.getItem(key)));
return { set, remove, get };
}
export const useStorage = (storage) => useCommonStorage(storage);