为什么token要同时存在vuex和localStorage中

vuex存储数据的特点:

数据统一全局管理,一旦数据在某组件更新,其他所有组件数据都会更新,也就是说它是响应式的,但是如果数据只存在vuex中,刷新页面vuex里的数据会重新初始化,导致数据丢失,恢复到原来的状态。

localStorage存储数据的特点:

永久性存储,但不是响应式的,当某组件数据修改时,其他组件无法同步更新。

另外,vuex是存储在内存中,localStorage是存储到磁盘里,从内存中读取数据,速度是远高于磁盘的,所以把数据存在vuex中可以提高获取token速度,提高性能。

结论:

所以我们在项目中通常是结合这两者使用,拿到token后,把token存储到localStorage和vuex中,vuex保证数据在各组件间同步更新,如果刷新页面数据丢失,我们可以从localStorage获取,通过结合vuex和localStorage本地存储,实现数据的持久化。

你可能感兴趣的:(前端,javascript,开发语言)