说明
该封装库只是对localStorage和sessionStorage进行的简易封装。
优点:
- 对localStorage和sessionStorage的操作更能加便捷。
缺点:
- 因为使用的JSON.parse和JSON.stringify,所以存取数据如果为对象并且对象中的值为undefined、function等会照成数据丢失。
封装的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function Store(webStorage) { if (webStorage !== "localStorage" && webStorage !== "sessionStorage") { throw new Error(` invalid parameter, parameter should be localStorage or sessionStorage`); } this.storage = webStorage === "localStorage" ? window.localStorage : window.sessionStorage;
this.getItem = function (key) { return JSON.parse(this.storage.getItem(key)); }
this.setItem = function (key, val) { return this.storage.setItem(key, JSON.stringify(val)); }
this.removeItem = function (key) { if (!this.storage.hasOwnProperty(key)) { return { state: 1, message: `删除失败,没有key值为${key}字段` }; } this.storage.removeItem(key); return { state: 0, message: "删除成功" } }
this.clear = function () { this.storage.clear(); } } export default Store;
|
使用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import Store from "../utils/webStorage.js";
const store = new Store("localStorage");
store.setItem("www",123);
store.getItem("www");
store.removeItem("www");
store.clear();
|