在Vue3(CLI)上使用indexedDB的最佳方法是什么?

时间:2019-02-27 02:20:45

标签: javascript vue.js indexeddb

我通常会在google上搜索有关使用某些语言,插件和框架的最佳做法。

我找不到任何有关在VUE CLI上使用indexedDB的最佳实践的教程。我实际上可以成功使用它,但是我认为我的代码是多余的。我不确定这是否是最好的方法。所以我要做的就是创建一个在挂载时执行的脚本。

let dbPromise = await indexedDB.open('dbname', 3);

/* initialize `tbl_contact` */
dbPromise.onupgradeneeded = (event) =>
{
    let ldb = event.target.result;

    // Create `contact` database
    let objectStore = ldb.createObjectStore("contact", { keyPath: "uid" });
    objectStore.createIndex("name", "name", { unique: false });
    objectStore.createIndex("status", "status", { unique: false });
    
    //.. and other database
};

然后每当我想对contact进行操作时。我再次打开它,就像将信息插入其中一样。

storeContact(contact)
{
  /* local db setup */
  var dbPromise = indexedDB.open('dbname');

  /* execute code on successful local db connection */
  dbPromise.onsuccess = () =>
  {
      let ldb             = dbPromise.result;
      let tx              = ldb.transaction('contact', "readwrite");
      let tbl_contact     = tx.objectStore("contact");

      /* insert contact to database */
      tbl_contact.put(contact);

      tx.oncomplete = () =>
      {
          ldb.close();
      }
  }
}

0 个答案:

没有答案