首页 /  技术专区  /  JavaScript 宽屏模式 >

JavaScript 本地存储 localStorage、sessionStorage

1. 本地存储介绍

以前我们页面写的数据一刷新页面就没有了,是不是?

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

    1、数据存储在用户浏览器

    2、设置、读取方便、甚至页面刷新不丢失数据

    3、容量较大,sessionStorage 和 localStorage 约 5M 左右

常见的使用场景:

https://todomvc.com/examples/vanilla-es6/ 页面刷新数据不丢失


2. 本地存储分类- localStorage

作用:可以将数据永久存储在本地(用户的电脑)除非手动删除,否则关闭页面也会存在

特性:

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

    以键值对的形式存储使用

语法:

存储数据:

localStorage.setItem(key, value)


获取数据:

localStorage.getItem(key)


删除数据:

localStorage.removeItem(key)


3. 本地存储分类- sessionStorage

特性:

生命周期为关闭浏览器窗口

在同一个窗口(页面)下数据可以共享

以键值对的形式存储使用

用法跟localStorage 基本相同

语法:

存储数据:

sessionStorage.setItem(key, value)


获取数据:

sessionStorage.getItem(key)


删除数据:

sessionStorage.removeItem(key)


4. 存储复杂数据类型

本地只能存储字符串,无法存储复杂数据类型

const obj = {
    name: '张三',
    age: 18
}
// 存
localStorage.setItem('obj', obj)
// 取
console.log(localStorage.getItem('obj'))    // [object Object]

Image.png

解决:需要将复杂数据类型转换成 JSON 字符串在存储到本地

语法:JSON.stringify(复杂数据类型)

const obj = {
    name: '张三',
    age: 18
}
// 存
localStorage.setItem('obj', JSON.stringify(obj))


将复杂数据转换成JSON字符串 存储 本地存储中

Image.png


问题:因为本地存储里面取出来的是字符串,不是对象,无法直接使用

const str = localStorage.getItem('obj')
console.log(str)

Image.png

解决:把取出来的字符串转换为对象

语法:JSON.parse(JSON字符串)

const str = localStorage.getItem('obj')
console.log(JSON.parse(str))


将JSON字符串转换成对象 取出 时候使用

Image.png






头像
0/200
图片验证码