大家看下面这段代码,在浏览器localstorage里面会显示吗?有什么问题?
问题:数据可以在各个页面共享,没有问题?但是就是无法显示在浏览器localstorage里面。
- reurn 语句里面没有将“ isCollapse,globalTitle”返回,返回的都是函数,函数不会存储在localstorage里面。但是并不影响系统中的数据共享。
- 解决方法 在return中,将isCollapse,globalTitle”返回.
- return { isCollapse,globalTitle,toggleCollapse, getCollapse, setGlobalTitle, getGlobalTitle,};
- 在返回中,变量存储在localstroage, 函数供其他模块调用
import { ref, computed } from "vue";
import { defineStore } from "pinia";
export const useLayoutConfigStore = defineStore(
"layoutConfig",
() => {
const isCollapse = ref(false); // 控制菜单是否折叠的状态
const globalTitle = ref("Vue3-Admin 全局标题"); // 全局标题
// 定义一个方法,用于切换菜单折叠状态
const toggleCollapse = () => {
isCollapse.value = !isCollapse.value;
};
const getCollapse = computed(() => isCollapse.value);
// 定义一个方法,用于设置全局标题
const getGlobalTitle = computed(() => globalTitle.value);
const setGlobalTitle = (title: string) => {
globalTitle.value = title;
};
//核心秘诀,如果不选择导出isCollapse,globalTitle
//那么浏览器中的localStorage 就不会显示isCollapse,globalTitle(必须导出才行)
return {
toggleCollapse,
getCollapse,
setGlobalTitle,
getGlobalTitle,
};
},
{ persist: true }
);