Skip to content

Latest commit

 

History

History
197 lines (130 loc) · 5.51 KB

README.ja.md

File metadata and controls

197 lines (130 loc) · 5.51 KB
         __                __  __                __
  ____  /\ \__     ___    /\ \/  \      __      /\ \     ___   
 / ,__\ \ \ ,_\   / __`\  \ \    <    /'__`\    \_\ \   / __`\ 
/\__, `\ \ \ \/  /\ \_\ \  \ \  ^  \ /\ \_\.\_ /\ ,. \ /\ \_\ \
\/\____/  \ \ \_ \ \____/   \ \_\ \_\\ \__/.\_\\ \____\\ \____/
 \/___/    \ \__\ \/___/     \/_/\/_/ \/__/\/_/ \/___ / \/___/ 
            \/__/

English | 中文 | 日本語

v2 ドキュメント

Stokado(/stəˈkɑːdoʊ/) は storageエスペラント語(国際補助語)であり、Stokadostorage の補助エージェントでもあります。

stokado は、任意の storage ライクなオブジェクトをプロキシし、ゲッター/セッターのシンタックスシュガー、シリアライゼーション、サブスクリプションリスニング、期限設定、一度だけの値の取得を提供します。

使用方法

インストール

npm install stokado

プロキシ

import { createProxyStorage } from 'stokado'

const storage = createProxyStorage(localStorage)

storage.getItem('test')

createProxyStorage(storage[, name])

createProxyStorage は2つのパラメータを取ります: storage ライクなオブジェクトとオプションの namename は他のページと storage の変更を同期するために使用されます。デフォルトでは、localStorage は同じ name を持ちますが、sessionStorage は持ちません。他のオブジェクトの場合は手動で渡す必要があります。

機能

1. シンタックスシュガー

オブジェクト指向のアプローチで直接 storage を操作します

もちろん、localStoragesessionStorage はネイティブにサポートされています

const storage = createProxyStorage(localStorage)

storage.test = 'hello stokado'

storage.test // 'hello stokado'

delete storage.test

storage には同じメソッドとプロパティもあります: key(), getItem(), setItem(), removeItem(), clear(), length

2. シリアライザー

ストレージ値の型を変更せずに保持します

// number
storage.test = 0
storage.test === 0

// boolean
storage.test = false
storage.test === false

// undefined
storage.test = undefined
storage.test === undefined

// null
storage.test = null
storage.test === null

// object
storage.test = { hello: 'world' }
storage.test.hello === 'stokado'

// array
storage.test = ['hello']
storage.test.push('stokado')
storage.test.length // 2

// Date
storage.test = new Date('2000-01-01T00:00:00.000Z')
storage.test.getTime() === 946684800000

// RegExp
storage.test = /d(b+)d/g
storage.test.test('cdbbdbsbz')

// function
storage.test = function () {
  return 'hello stokado!'
}
storage.test() === 'hello stokado!'

3. サブスクライブ

値の変更をサブスクライブします

storage.on(key, callback)

storage.once(key, callback)

storage.off([[key], callback])
  • key: サブスクライブするアイテムの名前。Objectobj.aArraylist[0]、および Array の長さをサポートします。
  • callback: アイテムが変更されたときに呼び出される関数。newValueoldValue を含みます。

ヒント: off の場合、callback が存在する場合は指定されたコールバックのトリガーを削除します。存在しない場合は、key にバインドされたすべてのコールバックを削除します。key が空の場合は、すべてのリスニングコールバックを削除します。

4. 期限

アイテムの期限を設定します

storage.setExpires(key, expires)

storage.getExpires(key)

storage.removeExpires(key)
  • key: 期限を設定するアイテムの名前。
  • expires: stringnumberDate を受け入れます。

5. 一度だけ

一度だけ値を取得します。これは storage を介して通信するために使用できます。

storage.setDisposable(key)
  • key:一度だけの値を設定するアイテムの名前。

6. オプション

指定されたアイテムの expiresdisposable の設定情報を取得します

storage.getOptions(key)

setItem を使用して expiresdisposable を設定します

storage.setItem(key, value, { expires, disposable })

localForage と一緒に使う

localForagelocalStorage と同じ API を提供しているため、stokado と一緒に使用できます。

import { createProxyStorage } from 'stokado'
import localForage from 'localforage'

const local = createProxyStorage(localForage, 'localForage')

ただし、localForage は非同期 API を使用しているため、Promise を使用して呼び出す必要があります。

await (local.test = 'hello localForage')

// または

await local.setItem('test', 'hello localForage')

複数のインスタンス

createInstance を使用して、異なるストアを指す localForage の複数のインスタンスを作成できます。

const store = localforage.createInstance({
  name: 'nameHere'
})
const proxyStore = createProxyStorage(store, 'store')

const otherStore = localforage.createInstance({
  name: 'otherName'
})
const proxyOtherStore = createProxyStorage(otherStore, 'otherStore')