Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2ue/local-storage-js
对localstorage封装一些简单的API,方便调用
https://github.com/2ue/local-storage-js
h5 html5 javascript localstorage storage store
Last synced: 17 days ago
JSON representation
对localstorage封装一些简单的API,方便调用
- Host: GitHub
- URL: https://github.com/2ue/local-storage-js
- Owner: 2ue
- Created: 2017-03-30T08:39:17.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-19T02:09:13.000Z (about 7 years ago)
- Last Synced: 2025-01-02T17:07:38.103Z (about 1 month ago)
- Topics: h5, html5, javascript, localstorage, storage, store
- Language: JavaScript
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# store
> 对`localstorage`的简单增强,方便应对项目中各种情况。目前暂未对不支持`localstorage`的平台做兼容处理,所以使用之前一定要确保平台支持`localstorage`功能
## 前言
为了减少学习成本,做了以下事情:
- 最大程度的保持和原生API同名以及语义化命名
- 最大程度的减少新增API以及API的参数对一些情况的说明:
原则上储存在`localstorage`中的`key`值只允许为字符串,其它类型的`key`无意义。但是在方法中允许传递`array`和`object`两种`key`,会对做类解构赋值处理
## Document
### use
> 引入后会在window上注册全局方法store,所有的实例方法都挂载到store下
``` bash
npm install --save local-storage-js
```#### script标签方式引入
``` html
```
#### require方式引入
``` javascript
require('local-storage-js');
//或者
import form('local-storage-js');
```### API
#### setItem(_k, _v, _d)
> 和`localstorage.setItem`作用相同,但是对它的增强
- `_k` 必须参数,允许`string`、`array`,`object`
- 为`string`时,直接调用`localstorage.setItem`方法,
- 为`array`时,`array`内的每一个元素表示一个`key`
- 为`object`时,将会按照对象的键值取得`key`,如果`_v`不是`object`类型,则忽略
- `_v` 必须参数(`_k`为`object`时可省略),允许任何类型数据,对于非基础类型数据,会自动调用`JSON.stringify`方法转换,以下情况除外:
- 当`_k`和`_v`同时为`array`时,`array`内的每一个元素表示一个`key`和一个对应的`val`,类似结构赋值
- 当`_k`和`_v`同时为`object`时,会基于`_k`合并`_v`,每个键值对表示一个储存的`item`和`val`
- `_d` 非必须参数,针对`_k`为复杂类型数据时是否深度变量,默认false只变量一层``` javascript
//key为string
setItem('name', '2ue') // name:2ue
setItem('name', 222) //name:222
setItem('names',['2ue',222,'uu']) //names:"['2ue',222,'uu']" 调用JSON.stringify()方法
setItem('names',{name:'2ue',nicName:'monork'}) //names:"{name:2ue,nicName:'monork'}" 调用JSON.stringify()方法//key为array
setItem(['name','nicName'],'2ue')//name:'2ue',nicName:'2ue'
setItem(['name','nicName'],['2ue'])//name:'2ue',nicName:''
setItem(['name','nicName'],['2ue','monork'])//name:'2ue',nicName:'monork'
setItem(['name','nicName'],['2ue','monork','duoyude'])//name:'2ue',nicName:'monork'
setItem(['name','nicName'],{name:'2ue',nicName:'monork'})//自动根据前面拆分的key匹配{name:'2ue',nicName:'monork'}中相同的key值==>name:'2ue',nicName:'monork'
setItem(['name'],{name:'2ue',nicName:'monork'})//自动根据前面拆分的key匹配{name:'2ue',nicName:'monork'}中相同的key值==>name:'2ue'//key为obejct
setItem({name:'2ue',nicName:'monork'})
setItem({name:'2ue',nicName:'monork'},'test') //等价于第一种
setItem({name:'2ue',nicName:'monork'},['test']) //等价于第一种setItem({name:'2ue',nicName:'monork'},{name:'heheda'}) //==>{name:'heheda',nicName:'monork'}
setItem({name:'2ue',nicName:'monork'},{name:'heheda',sex: 1}) //==>{name:'heheda',nicName:'monork'}
```#### getItem(_k)
> 和`localstorage.getItem`作用相同,但是对它的增强
- `_k` 必须参数,允许`string`,`array`, `object`。当为`array`, `object`时,按照对应结构返回json数据,默认深度遍历
- 支持`obejct`主要是对`setItem`一种对应,以便以最小的代价获取对应的值``` javascript
getItem('name'); //{name:2ue}
getItem(['nicName']) //{nicName:'monork'}
getItem({name:'test',nicName:'test'}) //{name:'2ue',nicName:'monork'}
```
#### getItems()> 获取所有的值,返回一个json对象
``` javascript
getItems(); //{name:'2ue',nicName:'monork'}
```#### getKeys()
> 获取所有的key,返回一个数组
``` javascript
getKeys(); //['name','nicName']
```
#### removeItem(_k)> 和`localstorage.removeItem`作用相同,但是对它的增强
- `_k` 必须参数,允许`string`,`array`,`object`,深度遍历,无返回值
``` javascript
removeItem('name');
removeItem(['name']) //等价removeItem('name')
removeItem(['name','nicName']) //等价removeItem('name')+removeItem('nicName');
getItem({name:'test',nicName:'test'}) //等价于removeItem(['name','nicName'])
```#### clear()
> 和`localstorage.removeItem`作用相同
#### hasKey(_k)
> 判断是否存在某个key
- `_k` 必须参数,只允许string类型,返回布尔值