setStoreData
Description
値をアプリスコープのローカルストレージ(ディスク)に永続的に保存します。dataにnullを渡すと、そのキーが削除されます。setSharedDataと異なり、アプリを再起動しても値が保持されます。
Parameters
| パラメーター | 型 | 説明 |
|---|---|---|
| key | String | 保存するデータのキー名 |
| data | dynamic | 保存する値。nullの場合はそのキーを削除 |
Returns
void
Notes
- 内部では、アプリスコープのprefixが付いたキーで
LucyStorageに保存されます。 - ディスクI/Oを使うため、
setSharedDataより相対的に遅くなります。 - ログイントークンやテーマ・ユーザー設定など、アプリを再起動しても保持したい値に使ってください。
- 特定のキーだけを削除するには、
nullを渡すか$app.removeStoreData(key)を使います。
Example
// ダークテーマ設定を永続保存
$app.setStoreData("THEME_MODE", 1);
// 保存された値を削除
$app.setStoreData("THEME_MODE", null);
setSharedData vs setStoreData vs setVarの比較
| 区分 | setSharedData | setStoreData | setVar |
|---|---|---|---|
| 保存場所 | アプリプロセスのメモリ | ディスク(LucyStorage) | アプリ変数システム(LucyVarMngr) |
| 永続性 | アプリ終了時に消滅 | アプリ再起動後も保持 | アプリ終了時に消滅 |
| 定義方法 | コードで自由にキーを指定 | コードで自由にキーを指定 | Studioで事前に定義が必要 |
| 読み取り関数 | $app.getSharedData(key) | $app.getStoreData(key) | $app.getVar(name) |
| 削除方法 | null値を渡す | null値を渡す | 値の変更のみ可能 |
| 主な用途 | ページ間での一時データ共有 | ユーザー設定、ログイントークンなどの永続保存 | Studio UIと連携したアプリ変数の制御 |
| 速度 | 高速(メモリ) | 相対的に低速(ディスクI/O) | 高速(メモリ) |
Related
$app.getStoreData(key)$app.removeStoreData(key)$app.setSharedData(sharedKey, data)