数据库操作对象 db,用于与浏览器的 localStorage 交互

简介: 数据库操作对象 db,用于与浏览器的 localStorage 交互

代码

let db = {
  save (key, value) {
    localStorage.setItem(key, JSON.stringify(value))
  },
  get (key, defaultValue = {}) {
    if (localStorage.getItem(key)) {
      return JSON.parse(localStorage.getItem(key))
    } else {
      return defaultValue
    }
  },
  remove (key) {
    localStorage.removeItem(key)
  },
  clear () {
    for (var key in localStorage) {
      if (key !== 'USER_FIXED_COLUMN') {
        localStorage.removeItem(key)
      }
    }
  }
}
export default db

这段代码定义了一个简单的数据库操作对象 db,用于与浏览器的 localStorage 交互。localStorage 是一种 Web 存储机制,可以在客户端存储键值对数据,这些数据在页面刷新后依然存在。下面对这段代码的各部分进行详细解释:

db 对象

db 对象包含四个方法:save、get、remove 和 clear。这些方法用于保存、获取、删除和清除 localStorage 中的数据。

save 方法

save (key, value) {
  localStorage.setItem(key, JSON.stringify(value))
}
  • 功能:将数据保存到 localStorage 中。
  • 参数:
  • key:存储数据的键名。
  • value:存储的数据值,在存储之前会被转换为 JSON 字符串。
  • 实现:使用 localStorage.setItem 方法将键值对存储到 localStorage 中。由于 localStorage 只能存储字符串,因此使用 JSON.stringify 将 value 转换为 JSON 字符串。

get 方法

get (key, defaultValue = {}) {
  if (localStorage.getItem(key)) {
    return JSON.parse(localStorage.getItem(key))
  } else {
    return defaultValue
  }
}
  • 功能:从 localStorage 中获取数据。
  • 参数:
  • key:要获取数据的键名。
  • defaultValue(可选):如果 localStorage 中不存在该键,返回的默认值,默认为空对象 {}。
  • 实现:
  • 检查 localStorage 中是否存在指定的键。
  • 如果存在,则使用 JSON.parse 将存储的 JSON 字符串转换为 JavaScript 对象并返回。
  • 如果不存在,则返回 defaultValue。

remove 方法

remove (key) {
  localStorage.removeItem(key)
}
  • 功能:从 localStorage 中删除指定键的数据。
  • 参数:
  • key:要删除数据的键名。
  • 实现:使用 localStorage.removeItem 方法删除指定键的数据。

clear 方法

clear () {
  for (var key in localStorage) {
    if (key !== 'USER_FIXED_COLUMN') {
      localStorage.removeItem(key)
    }
  }
}
  • 功能:清除 localStorage 中的所有数据,除了键名为 'USER_FIXED_COLUMN' 的数据。
  • 实现:
  • 使用 for...in 循环遍历 localStorage 中的所有键。
  • 对于每个键,如果键名不是 'USER_FIXED_COLUMN',则使用 localStorage.removeItem 删除该键。

export default db

  • 功能:将 db 对象作为默认导出,使其可以在其他模块中导入和使用。

示例用法

// 保存数据
db.save('user', { name: 'John Doe', age: 30 })
// 获取数据
const user = db.get('user')
console.log(user) // 输出:{ name: 'John Doe', age: 30 }
// 删除数据
db.remove('user')
// 清除所有数据(除了 'USER_FIXED_COLUMN')
db.clear()

通过这个 db 对象,可以方便地进行 localStorage 的存取操作。它提供了基本的 CRUD(创建、读取、更新、删除)功能,简化了与 localStorage 交互的过程。

相关文章
|
7天前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
6天前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
6天前
|
存储 编解码 JSON
解决浏览器存储问题,不得不了解的cookie、localStorage和sessionStorage
该文章详细对比了浏览器存储机制中的cookie、localStorage和sessionStorage的不同之处,以及各自的适用场景。
|
2月前
|
SQL 关系型数据库 MySQL
PHP与数据库交互的艺术:深入探讨PDO扩展
【8月更文挑战第28天】在数字信息时代的海洋里,PHP作为一艘灵活的帆船,承载着无数网站和应用的梦想。而PDO扩展,则是这艘帆船上不可或缺的导航仪,指引着数据安全与效率的航向。本文将带你领略PHP与数据库交互的艺术,深入浅出地探索PDO的世界,从连接数据库到执行复杂的查询,每一步都清晰可见。我们将一起航行在这段奇妙的旅程上,解锁数据的奥秘,体验编程的乐趣。
15 1
|
2月前
|
SQL 关系型数据库 MySQL
干货!python与MySQL数据库的交互实战
干货!python与MySQL数据库的交互实战
|
2月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
37 1
|
2月前
|
人工智能 关系型数据库 分布式数据库
DB+AI会擦出怎样的火花?一站式带你了解阿里云瑶池数据库经典的AI产品服务与实践!
从 DB+AI 精选解决方案、特惠权益等,一站式带你了解阿里云瑶池数据库经典的AI产品服务与实践。
|
2月前
|
JavaScript 前端开发
JavaScript BOM 的概念(浏览器对象模型)
JavaScript BOM 的概念(浏览器对象模型)
32 1
|
2月前
|
数据库连接 数据库
实现加载驱动、得到数据库对象、关闭资源的代码复用,将代码提取到相应的工具包里边。优化程序
该博客文章展示了如何通过创建工具类`Connectiontools`实现数据库连接、语句执行以及资源关闭的代码复用,以优化程序并提高数据库操作的效率和安全性。
|
2月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
41 0
下一篇
无影云桌面