简单分析vuex和localStorage的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单分析vuex和localStorage的区别相关的知识,希望对你有一定的参考价值。

参考技术A 我觉得vuex既然是状态管理工具,那它的核心就是‘状态’一词,vuex中定义的某个state变量可以理解成一个状态,何为状态?就是这个变量可以被vue的响应式系统观察到,当它的值发生的变化的时候,页面可以响应到它的变化来主动做一些事情,你甚至可以理解成是一个全局的data。

我们可以回想下,在vue组件中,定义在data中的某个变量,如果这个变量被使用在html模板中,或者计算属性中,那么这个变量就是响应式的,当这个变量变化时,那么html模板便会重新渲染,计算属性也会重新计算,理解这一点,我们再来理解vuex,首先,上述的这个变量被定义在单组件中的data内,也就是说只有在这个组件内才能使用,可是在某些业务场景中,我们希望这个变量是覆盖全局的,也就是在任何一个组件内都能访问到这个变量,并且最重要的是还可以让它拥有响应式的属性,这个时候vuex这个工具就登场了,将这个变量定义在vuex中。。。。。具体用法就不教了。。。。

而localStorage中的数据只是一个静态的值,无法被观察。

localStorage,session Storage和Vuex

1.local storage

local storage以文件的方式存储在本地,永久保存。只能存储字符串类型, 对于其他类型可使用JSON.stringify和JSON.parse方法转换存储。

用法:localStorage.setItem("token": value);

localStorage.token = value;

localStorage[‘token‘] = value;

 

2.SessionStorage

session storage会话存储,临时保存,关闭页面就被清除。除此之外,session的限制还在于 同一浏览器、同一窗口并且同源。只能存储字符串类型, 对于其他类型需要json stringify和parse方法转换存储。

用法:

sessionStorage.setItem("token": value);

sessionStorage.token = value;

sessionStorage[‘token‘] = value;

3.Vuex

用于组件之间传值,当多个组件共用一个数据源的时候,如果此时数据发生变化,其他组件同时变化.But Vuex是存储在内存中的,页面刷新 =>清空内存=>所以状态会丢失。

可用于组件之间的通信。方便。

 

以上简单总结以便记忆

 

以上是关于简单分析vuex和localStorage的区别的主要内容,如果未能解决你的问题,请参考以下文章

Vue中存储数据方法:localStorage、sessionStorage和Vuex的区别和简单使用

14.vuex和localStorage,全局变量的区别

vuex和localStorage/sessionStorage 区别

vue 中使用vuex和localStorage保存登录状态

vuex本地存储

vuex页面刷新数据丢失的解决办法