在 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(); ```