美文网首页
vuex存储与本地储存(localstorage、session

vuex存储与本地储存(localstorage、session

作者: coderfl | 来源:发表于2020-04-29 14:47 被阅读0次

    1.区别:vuex存储在内存,localstorage(本地存储)则以文件的方式存储在本地,永久保存(不主动删除,则一直存在);sessionstorage( 会话存储 ) ,临时保存。localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

    2.应用场景:vuex用于组件之间的传值,localstorage,sessionstorage则主要用于不同页面之间的传值。

    3.永久性:当刷新页面(这里的刷新页面指的是 --> F5刷新,属于清除内存了)时vuex存储的值会丢失,sessionstorage页面关闭后就清除掉了,localstorage不会。

    注:大家可能觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage,sessionstorage无法做到,原因就是区别1。

    localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。

    他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。

    localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

    sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

    不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

    同源的判断规则:

    image.png

    JSON对象提供的parse和stringify将其他数据类型转化成字符串,再存储到storage中就可以了
    操作的方式:

    存:

    var obj = {"name":"xiaoming","age":"16"}
    
    localStorage.setItem("userInfo",JSON.stringify(obj));
    

    取:

    var user = JSON.parse(localStorage.getItem("userInfo"))
    

    删除:

    localStorage.remove("userInfo);
    

    清空:

    localStorage.clear();
    

    ————————————————
    版权声明:本文为CSDN博主「wanf_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_31741481/java/article/details/88054069

    相关文章

      网友评论

          本文标题:vuex存储与本地储存(localstorage、session

          本文链接:https://www.haomeiwen.com/subject/moigwhtx.html