nuxt中刷新页面后防止store值丢失

1、 配置插件()

plugins: [
    {src:'~/plugins/storeCache',ssr: false},
  ],

 

注意:要禁止服务端运行,不然会报错,这个事件是在客户端添加的,不是在服务端小渲染的时候添加的。

2 。在plugins/storeCache.js

写代码,如下。

export default function(ctx){
    //离开页面 刷新前 将store中的数据存到session
    window.addEventListener('beforeunload', ()=> {
        sessionStorage.setItem("storeCache",JSON.stringify(ctx.store.state))
    });
    //页面加载完成  将session中的store数据
    window.addEventListener('load', ()=> {
        let storeCache = sessionStorage.getItem("storeCache")
        if(storeCache){
            // 将session中的store数据替换到store中
            ctx.store.replaceState(JSON.parse(storeCache));
        }
    });
}

 

大功告成

 

 

 

 

posted @ 2020-03-22 19:38  古墩古墩  Views(1928)  Comments(0Edit  收藏  举报