保存到 localStorage 的单一功能?

Single function for saving into localStorage?

我们如何保存和保留 localStorage 对象而不是创建多个函数?第一个 localStorage 对象被新的保存替换。因此,为了避免这种情况,我创建了一个名为 saveLocalStorageDataTwo 的新函数,该函数正在运行。但是我们怎样才能避免创建多个函数来将数据保存到 localStorage 中呢?有什么办法吗?有人可以指点一下吗?

/* localStorage.js */

let localStorageData = {};
let localStorageDataTwo = {};

function saveLocalStorageData ({autoId, quoteId, taskId }) {
    localStorageData = {
        autoId: autoId,
        quoteId: quoteId,
        taskId: taskId,
    }
    return localStorageData
}

function saveLocalStorageDataTwo ({data}){
    localStorageDataTwo = {
        data : data,
    }
    return localStorageDataTwo
}

export { saveLocalStorageData, saveLocalStorageDataTwo };

// 保存到本地存储:

let localData = require("../../support/localStorage");

const data = "Some Data 260-255"
const localStorageData = localData.saveLocalStorageData({ autoId });
window.localStorage.setItem('localStorageData ', JSON.stringify(localStorageData ));

  • 你根本不使用任何严格的参数,如 {autoId, quoteId, taskId} 只是传递任意 data.
  • 如果 不是那个函数的作用,就不要调用 saveLocalStorageData

改为:

const LS = {
  set(key, data) { localStorage[key] = JSON.stringify(data); },
  get(key) { return JSON.parse(localStorage[key]); },
};
// export { LS };
// import { LS } from "./localstorage.js"

// Example saving multiple data in different LS keys
LS.set("one", {autoId: 1, quoteId: 2, taskId: 3});
LS.set("two", {autoId: 7});


// Example saving Object, and later update one property value
const data = {a: 1, b: 2, c: 3};
LS.set("single", data); // Save
LS.set("single", {...LS.get("single"), c: 99999}); // Update
console.log(LS.get("single")); // {a:1, b:2, c:99999}


// Example saving multiple data into a single Array:
LS.set("arr", []); // Save wrapper Array
LS.set("arr", LS.get("arr").concat({a: 1, b: 2}));
LS.set("arr", LS.get("arr").concat({e: 7, f: 9}));
console.log(LS.get("arr")); // [{"a":1,"b":2}, {"e":7,"f":9}]

jsFiddle playground

或者在上一个示例中,您可以使用对象来代替数组。这一切都取决于需求。