【前端储存】之localStrage、sessionStrage和Vuex

简介

什么是localStrage

localStorage (本地存储) 是一种在用户浏览器中存储数据的客户端存储方式,允许网站将键值对数据持久保存在用户的本地浏览器中 。存储的数据不受浏览器关闭的影响,可以在不同会话和浏览器关闭后仍然保持有效。

  • 生命周期永久有效,除非手动删除,否则关闭页面也会存在

  • 可以多窗口(页面)共享(同一浏览器可以共享)

  • 以键值对的形式存储使用

  • 各浏览器支持的localStorage容量上限不同;一般上限为5MB

  • localStorage.getItem('key'); 如果key不存在则返回null,而不是 undefined
    例:标准的json对象{"name":"john"}

    //设置localStorage保存到本地,第一个为变量名,第二个是值
    localStorage.setItem('username', '安琪拉')

    // 获取数据
    localStorage.getItem('username')

    // 删除保存的数据
    localStorage.removeItem('username')

    // 清除所有保存的数据
    localStorage.clear()

什么是sessionStrage

sessionStorage 是一种在用户浏览器中临时存储数据的客户端存储方式适用于同一浏览器窗口或标签的会话期间。存储的数据在用户关闭浏览器窗口或标签时会被清除,因此适用于保存会话相关的临时信息,例如用户登录状态、暂时的用户选项等。

注:

  • 【只在本地存储】:seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。

  • 【存储方式】:seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型

  • 【存储上限限制】:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下

    // 设置sessionStorage保存到本地,第一个为变量名,第二个是值
    sessionStorage.setItem('sessionName', '可乐')

    // 获取数据
    sessionStorage.getItem('sessionName')

    // 删除保存的数据
    sessionStorage.removeItem('sessionName')

    // 清除所有保存的数据
    sessionStorage.clear()

什么是Vuex

Vuex 是一个用于 Vue.js 应用程序的状态管理模式和库。它专门用于管理应用程序中的状态(数据),使得不同组件之间可以共享和交流数据,而无需通过传递 props 或事件来传递数据。

注:详细介绍见: Vuex的原理和使用方法

扩展

  • JSON.stringify(); // 将json格式的数据(JavaScript 对象)转换成JSON格式的字符串
  • JSON.parse(); //将JSON格式的字符串转换成JSON对象进行处理

三者区别

主要区别

localStorage:是通过本地数据存储的,以文件的方式存储在本地;

sessionStorage:只是本地存储一个会话中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后也随之销毁;

Vuex:是一个全局状态数据管理,存储在内存中,没有内存大小限制;是专门为vue.js应用程序开发的状态管理模式;通过采用集中式存储管理应用的所有组件的状态。

应用场景

localStorage:一般用于跨页面传递数据场景;长期性保存的数据;

sessionStorage:适用于单页应用程序,方便再各业务模块进行传值;

也用于敏感账号的一次性登录,关闭当时页面再次打开时会需要重新登录

Vuex:是专门为vue.js应用程序开发的状态管理模式;用于组件之间传值

存储永久性

localStorage窗口或浏览器关闭也始终有效;

sessionStorage仅在当前浏览器关闭前有效;

vuex在刷新页面时存储的值就会丢失

相关推荐
朱 欢 庆5 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
支支დ11 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆11 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF12 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿67412 小时前
vue3-async
前端·javascript·vue.js
YXWik612 小时前
记录前端请求接口在浏览器请求响应的Preview和Response展示的一样的问题
前端
2501_9289962212 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
东风破_12 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
原则猫13 小时前
TS 类型工具
前端
excel13 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript