idb-uni

1.0.0 • Public • Published

统一接口:storage

  • storageImpl:指向现有环境创造类:WeChatStorage/IndexedDBStorage/LocalStorage
  • 如果同时支持IndexedDBStorage/LocalStorage,自动选择前者
  • 可以强制选择文件系统,LocalStorage/ FileStorage ,后者用于微信环境
  • 在文件中实现统一api,示例:
async setItem(key,value) {
    if (!this.storageImpl) 
    throw new Error('No storage implementation available');
    return this.storageImpl.setItem(key, value);
  }
  • 注意:WeChatStorage和IndexedDBStorage有一个重要区别,WeChatStorage没有表(对象存储)的概念。微信小程序的本地存储是一个简单的键值存储系统,每个键只对应一个值。而IndexedDBStorage是一个数据库下存储很多表,每个表相当于一个简单的键值存储系统。
  • 现有功能(IndexedDBStorage,所有数据存取在this.storeName表内):
  1. setItem(key, value):将key对应存储value,
  2. getItem(key):获得key对应数据
  3. removeItem(key):清空key对应数据
  4. clear():清空this.storeName对应表
  5. getAllItems():获取this.storeName对应表内所有数据
  • 现有功能(WeChatStorage):
  1. setItem(key, value):将key对应存储value,
  2. getItem(key):获得key对应数据
  3. removeItem(key):清空key对应数据
  4. clear():清空本地所有缓存
  5. getItemById(key, id):key对应数据如果是一个数组,获取数组里对应id的数据
  6. addItem(key, newItem):key对应数据如果是一个数组,向数组里添加newItem

使用思路:

使用方法:

  • 在scrip里:import Storage from 'path/to/Storage.js';
  • 对于统一接口,直接调用Storage.XXX,比如Storage.setItem(key, value);
  • 对于单独接口,调用Storage.storageImpl.XXX
  • 对于强制使用文件系统,调用Storage.localStorage或者Storage.FileStorage

Readme

Keywords

Package Sidebar

Install

npm i idb-uni

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

67.4 kB

Total Files

9

Last publish

Collaborators

  • channinglua