Skip to content

2ue/local-storage-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

store

localstorage的简单增强,方便应对项目中各种情况。目前暂未对不支持localstorage的平台做兼容处理,所以使用之前一定要确保平台支持localstorage功能

前言

为了减少学习成本,做了以下事情:

  • 最大程度的保持和原生API同名以及语义化命名
  • 最大程度的减少新增API以及API的参数

对一些情况的说明:

原则上储存在localstorage中的key值只允许为字符串,其它类型的key无意义。但是在方法中允许传递arrayobject两种key,会对做类解构赋值处理

Document

use

引入后会在window上注册全局方法store,所有的实例方法都挂载到store下

npm install --save local-storage-js

script标签方式引入

<script src='./node_modules/local-storage-js/src/store.js'></script>

require方式引入

require('local-storage-js');
//或者
import form('local-storage-js');

API

setItem(_k, _v, _d)

localstorage.setItem作用相同,但是对它的增强

  • _k 必须参数,允许stringarrayobject
    • string时,直接调用localstorage.setItem方法,
    • array时,array内的每一个元素表示一个key
    • object时,将会按照对象的键值取得key,如果_v不是object类型,则忽略
  • _v 必须参数(_kobject时可省略),允许任何类型数据,对于非基础类型数据,会自动调用JSON.stringify方法转换,以下情况除外:
    • _k_v同时为array时,array内的每一个元素表示一个key和一个对应的val,类似结构赋值
    • _k_v同时为object时,会基于_k合并_v,每个键值对表示一个储存的itemval
  • _d 非必须参数,针对_k为复杂类型数据时是否深度变量,默认false只变量一层
//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一种对应,以便以最小的代价获取对应的值
getItem('name'); //{name:2ue}
getItem(['nicName']) //{nicName:'monork'}
getItem({name:'test',nicName:'test'}) //{name:'2ue',nicName:'monork'}

getItems()

获取所有的值,返回一个json对象

getItems(); //{name:'2ue',nicName:'monork'}

getKeys()

获取所有的key,返回一个数组

getKeys(); //['name','nicName']

removeItem(_k)

localstorage.removeItem作用相同,但是对它的增强

  • _k 必须参数,允许string,array,object,深度遍历,无返回值
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类型,返回布尔值

About

对localstorage封装一些简单的API,方便调用

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published