【localStorage的理解与使用】

1. 什么是localStorage?

localStorage是HTML5提供的一种在客户端存储数据的机制,可将数据存储在本地浏览器中,即使用户关闭了浏览器也不会丢失该数据。

2. localStorage可以用来做什么?

  • 数据共享:可以实现不同页面之间共享数据,例如一个页面存储了某个数据,另一个页面可以通过localStorage来获取这个数据。
  • 用户偏好设置:可以使用localStorage存储用户的偏好,例如语言偏好、主体选择,下次访问网站可以保留用户的个性化设置。
  • 会话保持状态:localStorage可以用来存储客户端用户的会话状态,例如登录状态、购物车内容,这样即使用户关闭了浏览器,再次打开也可以回到之前的状态。
  • 本地缓存:localStorage可以用来缓存数据,例如图片、脚本,这样可减少网络请求,提高页面加载速度。

注意:localStorage存储的数据是在客户端,不适合存储敏感信息,如密码。

3. localStorage常用方法

(1)存储数据,如下:key是自定义的数据键名,value是需要存储的实际值

javascript 复制代码
localStorage.setItem(key, value);

例如:login.html中将用户名为"Nancy"用localStorage存储在浏览器中

javascript 复制代码
localStorage.setItem('username', 'Nancy');

(2)获取数据,如下:key是之前设置的数据键名

javascript 复制代码
var 变量名 = localStorage.getItem(key);

例如:在index.html获取login.html中存储在浏览器中的用户名

javascript 复制代码
var name = localStorage.getItem('username');
console.log('在index.html中获取login.html存储在浏览器中的username=' + name);

(3)删除数据,其中key是要删除的数据键名

javascript 复制代码
localStorage.removeItem(key);

例如:退出登录时,将login.html存储在浏览器的username删除

javascript 复制代码
localStorage.removeItem('username');

4. 清空数据,用以清空浏览器存储的所有数据

javascript 复制代码
localStorage.clear();

注意点:

  1. localStorage存储的数据类型只能是字符串类型,如果要存储其他类型的数据,需要先转化为字符串类型,然后获取数据时,再将之转换为对应的类型
javascript 复制代码
var obj = {name:'Nancy', age:18};
localStorage.setItem('user', JSON.stringify(obj));   //转换为字符串再存储

--------------------------------------------------------
var userStr = localStorage.getIem('user');
var user = JSON.parse(userStr);  //将字符串类型转换为对应的类型
console.log(user.name);
console.log(user.age);
  1. localStorage存储的数据大小是有限制的,不同浏览器限制大小也不同,如果存储的数据查过了限制大小,会导致存储失败。
相关推荐
浅水壁虎18 分钟前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥19 分钟前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
mONESY1 小时前
React useState 核心原理与最佳实践:从异步更新到性能优化全解
javascript
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?
java·前端·javascript·vue.js·产品经理·ai编程
gis开发之家3 小时前
《Vue3 从入门到大神37篇》Vue3 源码详解(七):watch 与 watchEffect 源码对比——副作用是如何被追踪的?
javascript·前端框架·vue3·vue3源码
bloglin999994 小时前
langchain 和 langgraph 和 react
javascript·react.js·langchain
触底反弹4 小时前
🚀 删了数据刷新又回来?3 组件 × 4 回调 × 3 坑讲透 React 父子通信
前端·javascript·react.js
会周易的程序员6 小时前
js-shm: 高性能 Node.js 共享内存模块
开发语言·javascript·c++·node.js·共享内存·shm
带娃的IT创业者6 小时前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc
新中地GIS开发老师7 小时前
零基础WebGIS开发入门 | GeoJSON数据持久化
前端·javascript·gis·webgis·三维gis开发