Repolode
dexie

dexie/Dexie.js

一个极简的 TypeScript 库,封装浏览器内置数据库 IndexedDB,提供更简洁的查询接口。

Star
14,658
Fork
719
未关闭 Issue
584
最近提交
前天

这是什么?

Dexie.js 是对 IndexedDB 的封装库。IndexedDB 是所有现代浏览器内置的客户端数据库,原生 API 较为繁琐,Dexie.js 让定义表结构、读写数据和执行查询变得更直接。表结构使用简短的版本化语法声明,查询则通过可链式调用的接口完成,支持索引、范围、过滤和批量操作。

该库针对不同 IndexedDB 实现中的兼容性问题做了处理,使各浏览器中的表现更加一致。它可用于普通 Web 应用和 PWA,也可用于 Electron 桌面应用以及基于 Capacitor 的 iOS、Android 应用。项目自带 TypeScript 类型定义,可通过 npm 安装或以脚本标签引入。

如需实时同步、身份认证和多用户协作,可以额外使用官方的 Dexie Cloud 插件,它可以托管使用,也支持自建部署。

核心功能

  • 01基于索引、范围和过滤条件的可链式查询接口。
  • 02使用简洁的字符串语法声明带版本号的表结构。
  • 03提供 bulkPut、bulkAdd 等批量操作,提升写入效率。
  • 04处理部分浏览器 IndexedDB 实现中的已知问题,行为更稳定。
  • 05支持浏览器、Electron 和 Capacitor 应用,并附带 TypeScript 类型。
  • 06可选的 Dexie Cloud 插件,提供同步和身份认证能力。

适用场景

  • 构建支持离线使用、在浏览器本地存储数据的 PWA。
  • 在客户端缓存接口响应或用户数据,减少网络请求。
  • 在 Electron 桌面应用或 Capacitor 移动应用中存储应用数据。
  • 借助 Dexie Cloud 为已有 Web 应用增加本地优先的同步能力。

快速上手

  1. 1

    通过 npm 安装 Dexie

    npm install dexie
  2. 2

    在应用代码中声明数据库和表,然后进行查询(参见 README 中的 Hello World 示例)

使用前须知

  • Dexie 封装的是 IndexedDB,因此仅适用于浏览器类环境,例如浏览器、Electron 或 Capacitor。

收录于专题

标签

常见问题

Dexie.js 是什么?
一个极简的 TypeScript 库,封装浏览器内置数据库 IndexedDB,提供更简洁的查询接口。 Dexie.js 是对 IndexedDB 的封装库。IndexedDB 是所有现代浏览器内置的客户端数据库,原生 API 较为繁琐,Dexie.js 让定义表结构、读写数据和执行查询变得更直接。表结构使用简短的版本化语法声明,查询则通过可链式调用的接口完成,支持索引、范围、过滤和批量操作。
Dexie.js 可以免费使用吗?用的什么许可证?
Dexie.js 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
Dexie.js 还在维护吗?
活跃维护中。Dexie.js 最近一次提交是在 2026年10月21日。
Dexie.js 适合用来做什么?
构建支持离线使用、在浏览器本地存储数据的 PWA。 在客户端缓存接口响应或用户数据,减少网络请求。 在 Electron 桌面应用或 Capacitor 移动应用中存储应用数据。 借助 Dexie Cloud 为已有 Web 应用增加本地优先的同步能力。
Dexie.js 怎么安装和运行?
通过 npm 安装 Dexie: npm install dexie 在应用代码中声明数据库和表,然后进行查询(参见 README 中的 Hello World 示例)
在哪里获取 Dexie.js?
源代码和安装说明在 GitHub 上:https://github.com/dexie/Dexie.js

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目