Skip to content

Commit

Permalink
docs: $store.set 说明
Browse files Browse the repository at this point in the history
  • Loading branch information
elecV2 committed Aug 29, 2021
1 parent e74f157 commit 2ec89d8
Showing 1 changed file with 32 additions and 23 deletions.
55 changes: 32 additions & 23 deletions docs/04-JS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
```
最近更新: 2021-08-14
最近更新: 2021-08-24
适用版本: 3.4.5
文档地址: https://github.com/elecV2/elecV2P-dei/blob/master/docs/04-JS.md
```
Expand Down Expand Up @@ -158,12 +158,12 @@ $axios(request, {
常量/cookie 存储。所有存储值以文件的形式存储在 **script/Store** 目录中。所有脚本共用存储常量,比如在 a.js 中使用 $store.put('something', 'akey'), 可在 b.js 中使用 $store.get('akey') 来获取存储值。

``` JS example
$store.get(key, type) // 获取存储值
$store.get(key, type) // 获取存储值
// type 可选
// - 'raw': 获取存储文件源内容
// - 'string/array/object/boolean/number': 以相应格式获取存储值

$store.put(value, key, options) // 保存
$store.put(value, key, options) // 保存
// options 可选
// - string 字符串
// - 'a': 添加内容。具体参考下面的 JS 实例
Expand All @@ -174,19 +174,20 @@ $store.put(value, key, options) // 保存
// note: '备注信息', // 关于 cookie 的一些说明,可省略
// belong: 'test.js', // 该 cookie 的归属脚本(调用或写入该 cookie 的脚本),可省略
// }
$store.set(key, value, options) // 等同于将上面的 $store.put 交换 key 和 value 的位置。(v3.4.5 添加)

$store.delete(key) // 删除
$store.delete(key) // 删除
```

$store 保存时会对数据类型进行简单的判断,当数据类型为 **number/boolean/object** 时,会按照数据类型进行保存。
$store 保存时会对数据类型进行简单的判断,当数据类型为 **number/boolean/array/object** 时,会按照数据类型进行保存。

``` JS store 实例
$store.put(123, 'number')
typeof $store.get('number') // 返回数字 123,类型为 number
$store.put(123, 'number') // put 方法,第一个参数为保存值 value, 第二个参数为关键字 key
typeof $store.get('number') // get 方法通过关键字获取保存值,返回数字 123,类型为 number

$store.get('number', 'raw') // 返回 { "type": "number", "value": 123 }
$store.get('number', 'raw') // 返回 { "type": "number", "value": 123 }

$store.put([2,3,4], 'newarr') // 存储为数组。保存成功返回 true,失败返回 false
$store.set('newarr', [2,3,4]) // 存储为数组。保存成功返回 true,失败返回 false。 set 方法第一个参数为 key,第二个参数为 value
$store.get('newarr') // 返回数组: [2,3,4]

$store.put(5, 'newarr', 'a')
Expand All @@ -196,29 +197,32 @@ $store.put(5, 'newarr', 'a')
$store.put([6,7], 'newarr', 'a') // newarr 新值为:[2,3,4,5,6,7]

$store.put('a string', 'keystr') // 不指定类型时 直接保存为 string 的形式
$store.put('add new line', 'keystr', 'a') // 在原 keystr 的值后面添加新行
$store.put('add new line', 'keystr', 'a') // 在原 keystr 的值后面添加新行
$store.get('keystr', 'raw')
// 返回:
// {"type":"string","value":"a string\nadd new line"}

$store.put({a: 334, b: 'abc'}, 'keyobj') // 存储类型为 object。
$store.get('keyobj') // 返回: {"a":334,"b":"abc"}
$store.get('keyobj', 'raw') // 返回: {"type":"object","value":{"a":334,"b":"abc"}}
$store.get('keyobj') // 返回: {"a":334,"b":"abc"}
$store.get('keyobj', 'raw') // 返回: {"type":"object","value":{"a":334,"b":"abc"}}
$store.put({c: 'new val'}, 'keyobj', 'a') // 新存储的值为: {"a":334,"b":"abc","c": "new val"}

$store.put('eoooe', 'keybol', 'boolean') // 强制转化为 boolean 值: true
// 建议在使用 $store.put 并指定 type 的时候,先确定原存储数值和即将保存数值的类型,以免发生未知错误。

$store.delete('number') // 删除某个 store/cookie 常量 number
// 等同于 $store.put('', 'number')

// 特殊情况
$store.put('a string 字符', 'objstr', 'object') // 强制将字符串保存为 object 格式。存储值为: {0: "a string 字符"}。 PS: array 是同样结果
$store.get('keystr', 'array') // 将字符串以 object 格式取出。结果为: {"0":"a string"}
$store.get('keystr', 'array') // 将字符串以 object 格式取出。结果为: {"0":"a string"}

// v2.5.2 更新 $store.get type random。 type 关键字 random 或者 r
$store.get('newarr', 'random') // 返回 newarr 数组中的一个随机值
$store.get('number', 'r') // 返回 0 - number 代表值 中间的任一整数
$store.get('keyobj', 'r') // 返回 object 中的任一 keys 对应值
$store.get('keybol', 'random') // 返回 随机 true/false
$store.get('keystr', 'r') // 如果 keystr 存储的是字符串,取随机值时,取随机一行的数据
$store.get('newarr', 'random') // 返回 newarr 数组中的一个随机值
$store.get('number', 'r') // 返回 0 - number 代表值 中间的任一整数
$store.get('keyobj', 'r') // 返回 object 中的任一 keys 对应值
$store.get('keybol', 'random') // 返回 随机 true/false
$store.get('keystr', 'r') // 如果 keystr 存储的是字符串,取随机值时,取随机一行的数据

// v3.3.3 更新: $store.put 第三个参数改为 options
// 当 options 为字符串类型时表示为之前的普通 type 类型
Expand All @@ -236,17 +240,19 @@ $store.put('a string 字符', 'objstr', {
所有脚本共享临时数据,比如在 a.js 中使用 $cache.hello = 'elecV2P', 可在 b.js 中使用 $cache.hello 来获取临时值。

共有五个方法: get(key), put(value, key), delete(key), keys(), clear()
v3.4.5 添加方法: set(key, value) // 和 put 方法的 key/value 顺序相反

``` JS
$cache.v = 'hello elecV2P' // 添加临时变量 v
// 等同于
$cache.put('hello elecV2P', 'v')
$cache.put('hello elecV2P', 'v') // put 方法 value 在前,key 在后
$cache.set('vv', '你好,elecV2P') // set 方法 key 在前,value 在后(v3.4.5 添加)

let val = $cache.get('v') // 获取临时变量 v 中的内容
// 等同于 let val = $cache.v

$cache.delete('v') // 删除临时变量 v
console.log($cache.v) // 如果临时变量不存在,将会返回 undefined
console.log($cache.v, $cache.vv) // 如果临时变量不存在,将会返回 undefined

$cache.obj = { // 临时变量存储对象可以是任意值。包括 object 和 函数等
num: 1234,
Expand All @@ -257,17 +263,20 @@ $cache.obj = { // 临时变量存储对象可以是任意值
$cache.obj.s()
console.log($cache.obj.num)

let keys = $cache.keys() // 以数据的形式返回当前所有临时变量
let keys = $cache.keys() // 以数组的形式返回当前所有临时变量关键字
// [ 'obj' ]

$cache.clear() // 清空存储的临时变量
console.log(keys, $cache.keys())

console.log($cache.size) // 当前临时变量个数。(v3.4.5 添加)
```

**$cache****$store** 的区别:
- $cache 数据保存在内存中,$store 数据保存在硬盘上。(因此,$cache 存取速度更快,但会占用一部分内存空间,不建议保存大量数据。)
- $cache 数据在内存中读写,$store 数据在硬盘上读写(因此,$cache 存取速度更快,但会占用一些内存,不建议保存大量数据)
- $cache 是临时存储,在 elecV2P 重启后所有数据会丢失。$store 是常量存储,重启后已存储数据依然存在
- $store 只能通过 get/put 方法来存取数据,而 $cache 可以直接通过点引用来存取。(比如: $cache.haha = '哈哈哈哈哈哈哈')
- $cache 是临时存储,在 elecV2P 重启后所有数据会丢失。$store 是常量存储,重启后已存储数据依然存在。
- $store 没有 keys()/clear()/size 的方法/属性,也不能保存函数类'动态'数据

### $env - 临时环境变量 (v3.4.5)

Expand Down

0 comments on commit 2ec89d8

Please sign in to comment.