如果刷新页面数据就消失,那么Vuex到底意义何在?

RT

比如我登录的时候获取到了登录用户的信息,然后我需要把用户名称显示再页面里

login页面

this.$store.commit('user', username)

home页面

import store from 'Vuex/store'
data () {
    return {
        user: this.$store.state.username
    }
},
store

大体就是这样,如果存loacl为什么不在login页面就存进去,反而再绕到Vuex里去存
我明白Vuex的数据是全局数据,存在内存里,一刷新肯定会没,所以现在有点蒙,到底该怎么用才是正确的

求大牛指导!!!!!!!

阅读 9.2k
6 个回答

vuex并不能解决跨页面数据共享的问题,他解决的主要问题是不同组件间的通信,比如兄弟组件间通信,要是不用vuex会非常麻烦,也不好维护,使用vuex之后,能进行统一管理,非常方便

先搞清楚vuex的作用,vuex主要用在父子组件通信或者子子组件间通信,如果不用vuex通信就得通过复杂的事件触发完成。一般开发都存在组件里面套组件的情况,所以vuex用起来比较方便,如果组件数目比较少,不用vuex完全可以的

感觉你对vuex的理解有误,vuex主页解决的是vue中组件通信的问题,具体的体现是当你进行路由切换和组件访问时都能够去操作store中的数据。如果要解决刷新页面时store中数据不能访问的问题,要么将数据存在localstorage中,要么重新发起请求

其实说实话,页面本身需要刷新才能正常使用的情况少之又少,会存在刷新很多情况下,是用户觉得卡住了或者其它原因甚至可能是无聊或者是误触才导致的。
当然为了解决刷新后vuex数据丢失,可以通过vuex的订阅加上本地存储功能完美解决,兼容性也很好。
最后,存在的肯定是合理的。

你可以结合localStorage使用 就避免了刷新数据消失的问题了。

vuex 主要是负责通信的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题