Dexie.js - LocalStorage 不够用?试试这个简化 JavaScript 调用浏览器数据库的开源工具库

Dexie.js - LocalStorage 不够用?试试这个简化 JavaScript 调用浏览器数据库的开源工具库

    正在检查是否收录...

Dexie.js - LocalStorage 不够用?试试这个简化 JavaScript 调用浏览器数据库的开源工具库

IndexedDB 是浏览器的大数据量本地储存方式,不过很难用,推荐一个封装好的工具库。

浏览器 IndexedDB

现在大型的

Web 应用

功能越来越完善,需要在客户端进行

数据存储

离线访问

以及数据同步等,对本地数据的储存和管理非常重要。

LocalStorage

已经满足不了这些本地储存的需求了,很多开发者看向了

IndexedDB

,这是一种可以本地存储大量数据的方法。

不过我第一次使用时,直接使用 IndexedDB API ,非常麻烦,需要写很多代码,我第一感觉是非常怀念 LocalStorage 的简单直接。后来发现了

Dexie.js

,这是一个强大、简单的 JavaScript 库,它对 IndexedDB 进行了封装,让我可以很轻松地管理浏览器端的数据。

Dexie.js - LocalStorage 不够用?试试这个简化 JavaScript 调用浏览器数据库的开源工具库
Dexie.js 官网

Dexie.js 技术特性

数据更容易管理

Dexie.js 提供简洁的

API

,让我们可以轻松创建、打开、查询和管理 IndexedDB 数据库。我们不仅可以定义数据模式,包括表格和索引,而且随着 web 项目的发展迭代,还可以方便地进行

数据库版本

升级。

Promise 异步支持

和 IndexedDB 原生 API 一样,Dexie.js 的操作也是异步的,而且是用 Promise 来处理异步操作,可以直接在数据库操作后执行使用 then() 方法处理结果,或者使用 async/await 语法来更清晰地处理异步操作,编写和维护代码非常优雅。

数据查询

Dexie.js 支持复杂的查询操作,包括过滤、排序、范围查询等,完全不需要编写那些的低级 IndexedDB 代码,数据检索和处理非常优雅灵活。

浏览器兼容性好

Dexie.js 支持主流的现代浏览器,包括

Chrome

、Firefox、

Edge

和 Safari 等,手机端上也得到了很多的支持,不用担心兼容性问题。

轻量级

Dexie.js 是一个

轻量级

的库,体积小巧,加载速度快,没有其他依赖。

开发上手使用

现在让我们来看一下如何使用 Dexie.js 来管理浏览器端的数据。比如创建一个 IndexedDB 数据库、定义一个表格以及插入和查询数据。

1. 安装 Dexie.js

我们可以从 CDN 引入 js 文件,也可以使用 npm 或 yarn 来进行安装。下面使用 npm:

npm install dexie

2. 创建数据库

// 导入Dexie库 import Dexie from 'dexie'; // 创建一个数据库实例 const db = new Dexie('testDatabase');

3. 定义数据表格

db.version(1).stores({ friends: '++id, name, age' });

在这段代码创建了一个名为 friends 的表格,包含自动生成的 id 字段、name 字段和 age 字段。其中 ++id 表示 id 字段自动递增。

4. 插入数据

db.friends.add({ name: '张三', age: 30 }); db.friends.add({ name: '李四', age: 25 });

5. 查询数据

db.friends .where('age') .above(28) .toArray() .then(friends => { console.log('超过28岁的朋友:', friends); });

上面这段代码使用 where 方法指定查询条件,然后使用 above 方法指定条件为大于28岁的朋友。最后,通过 toArray 方法获取结果,并将结果打印到控制台。

搭配 Vue 等框架使用

怎么样,使用起来很简单吧?由于没有其他依赖,Dexie.js 可以搭配其他框架一起使用,比如可以和 Vue.js 使用。

Dexie.js - LocalStorage 不够用?试试这个简化 JavaScript 调用浏览器数据库的开源工具库
Dexie.js 文档
<template> <h2>朋友们</h2> <ul> <li v-for="friend in friends" :key="friend.id"> {{ friend.name }}, {{ friend.age }} </li> </ul> </template> <script> import { liveQuery } from "dexie"; import { db } from "../db"; import { useObservable } from "@vueuse/rxjs"; export default { name: "FriendList", setup() { return { friends: useObservable( liveQuery(async () => { return await db.friends .where("age") .between(18, 65) .toArray(); }) ) }; } }; </script>

看到这里,相信你也清楚了,Dexie.js 非常适合哪些

LocalStorage

已经满足不了的项目,如何你也遇到这种情况,是时候考虑它了。

免费开源说明

Dexie.js 是一个免费开源的

JS 工具库

,源码采用 Apache 2.0 协议托管在 Github 上,任何人都可以免费下载来使用。



  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-26772.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.7W+
6
0
1
WAP站长官方

ModernCSS.dev - 来自微软前端工程师的 CSS 高级教程,讲解如何用新的 CSS 语法来解决旧的问题

上一篇

FastBootstrap - 知名软件开发商 Atlassian 出品的免费开源的 Bootstrap 主题,帮助开发者快速构建 web 项目

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单