UNPKG

fast-storage-js

Version:

一个简单易用的js的localstorage响应式操作库

102 lines (80 loc) 2.59 kB
# fastStorage-js 使用说明 ## 概述 `Storage` 是一个基于 localStorage 的增强型存储类,提供了更友好的 API 和类型安全的数据存储功能。它使用命名空间隔离不同实例的数据,并自动处理数据类型转换。 ## 版权声明 MIT License 2025 © 王小玗 ## 安装与初始化 ```javascript // 在浏览器环境中自动注册 // 已经通过 window.Storage = Storage 注册到全局 // 创建实例 const myStorage = new Storage('myApp'); ``` ## 基本用法 ### 存储数据 ```javascript myStorage.key1 = 'value'; // 字符串 myStorage.numberValue = 42; // 数字 myStorage.boolValue = true; // 布尔值 myStorage.objValue = {a: 1}; // 对象 myStorage.nullValue = null; // null ``` ### 读取数据 ```javascript console.log(myStorage.key1); // 'value' console.log(myStorage.numberValue); // 42 (数字类型) console.log(myStorage.objValue); // {a: 1} (对象) ``` ### 检查键是否存在 ```javascript if ('key1' in myStorage) { console.log('key1 exists'); } ``` ### 删除数据 ```javascript delete myStorage.key1; // 删除key1 myStorage.remove('key1'); // 等效方法 ``` ### 清空所有数据 ```javascript myStorage.clear(); // 只清除当前命名空间下的数据 ``` ## 高级功能 ### 获取所有键名 ```javascript const keys = myStorage.keys(); console.log(keys); // ['numberValue', 'boolValue', 'objValue', ...] ``` ### 获取存储项数量 ```javascript console.log(myStorage.length); // 当前命名空间下的项数 ``` ### 迭代存储项 ```javascript // 使用for...of迭代 for (const [key, value] of myStorage) { console.log(key, value); } // 或使用Object.keys等 Object.keys(myStorage).forEach(key => { console.log(key, myStorage[key]); }); ``` ## 注意事项 1. 所有数据都存储在localStorage中,有大小限制(通常5MB) 2. 数据会持久化,直到手动删除或用户清除浏览器数据 3. 不同实例使用不同命名空间,互不干扰 4. 存储对象时会进行JSON序列化,函数和特殊对象属性会丢失 5. 在隐私模式下,localStorage可能不可用或会在会话结束后清除 ## 方法参考 - `get(key)`: 获取指定键的值 - `set(key, value)`: 设置键值对 - `_has(key)`: 检查键是否存在(内部方法) - `remove(key)`: 删除指定键 - `clear()`: 清空当前命名空间所有数据 - `keys()`: 返回所有键名数组 - `_getLength()`: 获取项数(内部方法) - `_invalidateCache()`: 清除缓存(内部方法) ## 许可证 MIT License - 自由使用、修改和分发,但需保留版权声明。