pinia参考这个:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <div id="app"> <p> Counter: {{ store.counter }} Double: {{ store.double }} </p> <button @click="store.increment">Increment</button> </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue3.2.22.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/VueDemi.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pinia.js"></script> <script> const useStore = Pinia.defineStore({ id: 'main', state: () => ({ counter: 0 }), getters: { double: state => state.counter * 2 }, actions: { increment() { this.counter++; } } }); // 创建自定义插件 function createCustomPersistPlugin(options = {}) { return ({ store }) => { // 在插件初始化时从自定义存储引擎中加载状态 const persistedState = loadFromCustomStorage(options.key); if (persistedState) { // 将加载的状态应用到store store.$patch(persistedState); } // 监听store的状态变化,将变化后的状态保存到自定义存储引擎 store.$subscribe((mutation, state) => { saveToCustomStorage(options.key, state); }); }; } function loadFromCustomStorage(key) { const persistedState = localStorage.getItem(key); return persistedState ? JSON.parse(persistedState) : null; } function saveToCustomStorage(key, state) { localStorage.setItem(key, JSON.stringify(state)); } // 加载Pina插件 const customPersistPlugin = createCustomPersistPlugin({ key: 'myCustomStorageKey', // 设置自定义存储引擎的键 }); const pinia = Pinia.createPinia(); pinia.use(customPersistPlugin); // const App = { setup() { const store = useStore(); return { store }; } }; const app = Vue.createApp(App).use(pinia); app.mount('#app'); </script> </body> </html>
网友回复
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?
js在浏览器中如何使用MediaStream与MediaRecorder实现声音音频多轨道混流?