1.3.4 • Published 1 year ago

@alicloud/storage-factory v1.3.4

Weekly downloads
73
License
MIT
Repository
github
Last release
1 year ago

@alicloud/storage-factory

Why

一个应用最好有自己的一个 storage 的主 key 作为其统一的 namespace 对 storage 下的字段进行管理,有如下好处:

  • 避免 localStorage / sessionStorage 的泛滥
  • 避免应用内取名冲突
  • 可以存取各种类型的数据,而不是需要转换过才能用的字符串
  • 不必担心出错

APIs

这是一个工厂方法,生产一个方法:

import storageFactory from '@alicloud/storage-factory';

export default storageFactory(`${app_name}@${user_id}`); // 最好能跟登录用户挂钩,默认用的是 locationStorage

// 如果还需要 sessionStorage 的操作,可以这样:
export const session = storageFactory(`${app_name}@${user_id}`, true);

工厂方法生产出来的方法是多态的:

// 获取全部,没有什么实际意义,只在 debug 时可以用
function storage(): Record<string, unknown>;

// 获取 key 对应的值
export interface IFnStorageGetter {
  <T = string>(key: string): T;
}

// 删除 key 对应的值
export interface IFnStorageClearer {
  (key: string, value: null): void;
}

// 设置 key 对应的值
export interface IFnStorageSetter {
  <T = string>(key: string, value: T): void;
}

Example

1. 在应用下生产「唯一」的 storage 模块,比如 util/storage.js

import storageFactory from '@alicloud/storage-factory';

export default storageFactory(`${app_name}@${user_id}`); // 最好能跟登录用户挂钩,默认用的是 locationStorage

// 如果还需要 sessionStorage 的操作,可以这样:
export const session = storageFactory(`${app_name}@${user_id}`, true);

2. 使用

import storage from ':util/storage';

storage(); // 获取全部,没有什么实际意义
storage(key); // 获取某个值
storage(key, val); // 设置某值
storage(key, null); // 清除某值
1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

2 years ago

1.2.2

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.2.1

2 years ago

1.1.56

2 years ago

1.1.52

3 years ago

1.1.50

3 years ago

1.1.55

3 years ago

1.1.54

3 years ago

1.1.53

3 years ago

1.1.34

3 years ago

1.1.33

3 years ago

1.1.32

3 years ago

1.1.30

3 years ago

1.1.29

3 years ago

1.1.27

3 years ago

1.1.26

3 years ago

1.1.24

3 years ago

1.1.23

3 years ago

1.1.22

3 years ago

1.1.20

3 years ago

1.1.19

3 years ago

1.1.18

3 years ago

1.1.17

3 years ago

1.1.16

3 years ago

1.1.14

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.40

3 years ago

1.0.39

3 years ago

1.0.38

3 years ago

1.0.37

3 years ago

1.0.36

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.0.33

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.29

3 years ago

1.0.23

3 years ago

1.0.21

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.6

3 years ago

1.0.4

3 years ago

1.0.1

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago

0.0.2

3 years ago