在 Web Development 上我們常常會儲存小量資料在 Client Side 上,有可能是使用者的使用習慣,或者對上一次動作遇原資料等等。
雖然 Browser 自帶的 `localstorage` API 已經好方便使用,因為再提升可用性,現在就介紹一個 library 用來管理 `localstorage` 的。
### store2
Github : https://github.com/nbubna/store
佢提供左簡單的方法來存取 `localstorage`,可以另你更加專心你 Business logic 的開法。
#### 簡單應用方法
我們可以通過 `store()` 來進行簡單的基本的應用
```js
// 設定 key value
store(key, data);
// 使用 key 讀取 value
store(key);
// 運用 transaction 來寫入 value 到 key
store(key, fn[, alt]);
// 一次過寫入多個 key value
store({key: data, key2: data2});
// 讀所 store 內的所有 key value
store();
// 一個一個咁讀出 key 及 value, 可以通過 `return false` 來停止
store((key, data) => { });
// 清除所有的資料
store(false);
```
#### 進階應用
如果要進行更多的功能,可以通過以下方式來達成。
```js
// 相等於 store(key, data)
store.set(key, data[, overwrite]);
// 相等於 store({key: data, key2: data})
store.setAll(data[, overwrite]);
// 相等於 store(key)
store.get(key[, alt]);
// 相等於 store()
store.getAll([fillObj]);
// 相等於 store(key, fn[, alt])
store.transact(key, fn[, alt]);
// 相等於 store(false)
store.clear();
// 檢查 store 內有沒有提升的 key 值
store.has(key);
// 清除 key 的值及回傳原有資料,如果沒有資料則回傳 alt
store.remove(key[, alt]);
// 相等於 store(fn)
store.each(fn[, fill]);
// 加入資料到 key
store.add(key, data[, replacer]);
// 回傳所有的 keys
store.keys([fillList]);
// 取得 key 的 lenght
store.size();
// 清除所有的 key
store.clearAll();
```