userStore 初始化必须放在 路由守卫里 才会生效, 必须放在 路由守卫里 才会生效, 必须放在 路由守卫里 才会生效。放在外面,持久化会失效,记录一下。
虽然上面写法,不会在浏览器中报错,不过会导致pinia的一些功能错乱(因为整个应用中初始化了多个pinia) 特别是pinia-plugin-persist的持久化会失效.. 三、正确的使用方法 正如官网所描述:
pinia-plugin-persist失效了 只有真正的改变了store的值,才能触发持久化的存储,博主学习的时候在这里踩了很久的坑,当时只是改变了数据的引用,并没有真正改变pipia里面的值,以为pinia-plugin-persist失效了,看了源码才知道原理是通过$subscribe监听,断点调试发现没有触发才恍然大悟。
实际测试发现一个问题,不能单独创建一个文件,把createPinia独立出去,然后再导入到main.js中,如果在单独的文件中 pinia.use(piniaPersist),导致本地存储失效;如果导入main.js中后再use,会报错:pinia无use函数,解决办法是导出一个函数,函数的参数是app,在main.js中导入这个函数,然后调用,把app传参进去就好了。下面...
importuseAppStore from'@/store/app' constappStore=useAppStore(pinia); 虽然上面写法,不会在浏览器中报错,不过会导致pinia的一些功能错乱(因为整个应用中初始化了多个pinia) 特别是pinia-plugin-persist的持久化会失效.. 三、正确的使用方法 正如官网所描述:...