最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用vuex解决刷新页面state数据消失的问题记录

来源:动视网 责编:小采 时间:2020-11-27 21:57:33
文档

使用vuex解决刷新页面state数据消失的问题记录

使用vuex解决刷新页面state数据消失的问题记录:在实际的vue项目中,当我们的应用遇到多个组件之间的共享问题时,通常会用到Vuex(一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化),解决组件之间同一状态的共享问题。 因子: Vuex优势:相比sessionStorage,存储数据更安全,sessi
推荐度:
导读使用vuex解决刷新页面state数据消失的问题记录:在实际的vue项目中,当我们的应用遇到多个组件之间的共享问题时,通常会用到Vuex(一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化),解决组件之间同一状态的共享问题。 因子: Vuex优势:相比sessionStorage,存储数据更安全,sessi


在实际的vue项目中,当我们的应用遇到多个组件之间的共享问题时,通常会用到Vuex(一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化),解决组件之间同一状态的共享问题。

因子:

  • Vuex优势:相比sessionStorage,存储数据更安全,sessionStorage可以在控制台被看到。
  • Vuex劣势:在刷新页面后,vuex会重新更新state,所以,存储的数据会丢失。
  • 言而总之:

    实际问题:在vue项目中,使用Vuex做状态管理时,调试页面时,刷新后state上的数据消失了,该如何解决?

    解决思路:将state中的数据放在浏览器sessionStorage和localStorage

    解决办法:

    存储到localStorage

    通过监听页面的刷新操作,即beforeunload前存入本地localStorage,页面加载时再从本地localStorage读取信息
    在App.vue中加入下面代码

    created(){
     //在页面刷新时将vuex里的信息保存到localStorage里
     window.addEventListener("beforeunload",()=>{
     localStorage.setItem("messageStore",JSON.stringify(this.$store.state))
     })
     
     //在页面加载时读取localStorage里的状态信息
     localStorage.getItem("messageStore") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("messageStore"))));
     }
    

    使用vuex-persistedstate 插件

    安装插件:npm install vuex-persistedstate --save

    配置:

    在store的index.js中,手动引入插件并配置

    import createPersistedState from "vuex-persistedstate"
    const store = new Vuex.Store({
     // ...
     plugins: [createPersistedState()]
    })
    

    该插件默认持久化所有state,当然也可以指定需要持久化的state:

    import createPersistedState from "vuex-persistedstate"
    const store = new Vuex.Store({
     // ...
     plugins: [createPersistedState({
     storage: window.sessionStorage,
     reducer(data) {
     return {
     // 设置只储存state中的myData
     myData: data.myData
     }
     }
     })]
    

    文档

    使用vuex解决刷新页面state数据消失的问题记录

    使用vuex解决刷新页面state数据消失的问题记录:在实际的vue项目中,当我们的应用遇到多个组件之间的共享问题时,通常会用到Vuex(一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化),解决组件之间同一状态的共享问题。 因子: Vuex优势:相比sessionStorage,存储数据更安全,sessi
    推荐度:
    标签: 数据 VUE 页面
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top