关于pinia-plugin-persistedstate的数据无法显示在浏览器localstorage里面的问题(特别着急,解决了,抓紧记录下来)

55 阅读1分钟

大家看下面这段代码,在浏览器localstorage里面会显示吗?有什么问题?

问题:数据可以在各个页面共享,没有问题?但是就是无法显示在浏览器localstorage里面。

  1. reurn 语句里面没有将“ isCollapse,globalTitle”返回,返回的都是函数,函数不会存储在localstorage里面。但是并不影响系统中的数据共享。
  2. 解决方法 在return中,将isCollapse,globalTitle”返回.
  3. return { isCollapse,globalTitle,toggleCollapse, getCollapse, setGlobalTitle, getGlobalTitle,};
  4. 在返回中,变量存储在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 }

);