上代码
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)
})
复合索引请看这里
数据库模型修改
待完成...