Dexiejs 使用解析

1,503 阅读1分钟

上代码

const db =new Dexie(databaseName) //初始化数据库实例
db.version(1).stores({}) // 声明indexedDB版本和数据模型
db.open().then(db=>{
   
}) // 连接数据库

数据模型

db.version(1).stores({}) 
// version 指定indexedDB版本
// stores 接受一组tableSchema,用来声明Dexie数据结构,
// 在db.open() 时,如果indexedDB不存在,会根据tableSchema建立数据库
// 如果indexedDB已存在,不会修改数据库,修改数据库结构需要通过创建新版本数据库实现
// indexedDB 受同源限制🚫

需要注意的是,tableScheam 中务必只包含主键和需要 where 操作的字段

tableSchema 语法如下

tableSchema 的第一个字段一定是主键;

tableSchema字段值不能是null,boolean,undefind;

热腾腾的栗子

db.version(1).stores({
    friends: '++id,name,shoeSize', // id 为自增主键
    cars: '++, name',              // ++ 表示一个隐藏的自增主键
    enemies: ',name,*weaknesses',  // 有一个隐藏主键,且主键不是自增的
                                   // 'weaknesses' 是一个数组,可以对数组内容进行 where 操作
    users: 'meta.ssn, addr.city',  // meta 是一个对象,meta.ssn 是主键 
    people: '[name+ssn], &ssn'     // name+ssn 作为主键,同时也是复合索引, ssn的每一个值都是唯一的(unique)
})

复合索引请看这里

数据库模型修改

待完成...