Bitsmist Frameworks
Docs » ChainableStore

ChainableStore

継承:Store

概要

ChainableStoreはStoreクラスを継承した、他のStoreオブジェクトと連結可能なStoreクラスです。連結された場合、値取得時に自身にないアイテムは連結されたオブジェクトから取得を試みます。

このページでは、親クラスと違う箇所のみを説明しています。

プロパティ

items

型:Object get/set

保持しているアイテムのオブジェクトのコピーです。連結されている場合は、連結されているものも含めた全てのアイテムを返します。

代入した場合は、自身のストアに対して保存されます。連結先のストアを変更することはありません。

localItems

型:Object get

自身が保持しているアイテムのオブジェクトです。連結されている場合は、連結されているものは含まないアイテムを返します。

コンストラクタ

Constructor(settings)

パラメータ

パラメータ型説明
settingsObjectStoreクラスを初期化する設定情報です。親クラスで設定できるキーに加え、以下のキーがあります。
“chain”StoreこのStoreオブジェクトと連結します。
“writeThrough”BooleanTrueの場合、set()/merge()での書き込み時に自身ではなく、連結先を変更します。

メソッド

chain(store)

型:undefined

引数で指定されたChainedStoreオブジェクトに連結させます。連結した場合にget時に指定されたキーのアイテムが存在しない場合、連結されたオブジェクトからアイテムの取得を試みます。連結できるのは1つのオブジェクトだけです。複数回このメソッドが呼ばれた場合は、後から指定されたもので上書きされます。

パラメータ

パラメータ型説明
store
必須
ChainableStore連結するChainableStoreオブジェクト。

戻り値

なし。

clone()

型:Object

保持しているアイテムのディープコピーを作成します。連結されている場合、連結先が保持しているアイテムも含めたコピーを作成します。

パラメータ

なし。

戻り値

保持しているアイテムのコピーを返します。

get(key, defaultValue)

型:*

keyパラメータで指定された値を返します。指定されたキーが存在しない場合defaultValueを返します。他のストアに連結されている場合、

  1. 自身が保持する値
  2. 連結先が保持する値
  3. defaultValue

の順番に検索され、存在すればそれが返されます。全て存在しない場合はundefinedが返されます。

パラメータ

パラメータ型説明
key
必須
String取得するキーを指定します。
defaultValue*キーが存在しない場合に返す値を指定します。

戻り値

指定されたキーの値です。

merge(value, merger)

型:undefined

現在保持しているアイテムに、引数で渡されたオブジェクトの内容をマージします。連結されている場合、デフォルトでは自身のアイテムにマージしますが、コンストラクタのオプションで“writeThrough”オプションをTrueにセットした場合は自身ではなく連結先のストアを書き換えます。

パラメータ

パラメータ型説明
value
必須
Object/
Array of objects
マージするオブジェクトを指定します。オブジェクトの配列を渡すこともできます。その場合は、配列内の全てのオブジェクトが順にマージされます。
mergerFunctionマージする際に使用する関数を指定します。指定がない場合は、mergerプロパティにセットされているマージ関数が使用されます。

戻り値

なし。

set(key, value)

型:undefined

keyパラメータで指定された項目に値をセットします。指定されたキーが存在しない場合は、自動的に作成されます。既にアイテムが存在しかつそれがオブジェクトである場合はマージされます。

連結されている場合、デフォルトでは自身のアイテムにセットしますが、コンストラクタのオプションで“writeThrough”オプションをTrueにセットした場合は自身ではなく連結先のストアを書き換えます。

キーには、ピリオド区切りで複数の階層を指定できます。以下のように指定した場合、store[“settings”][“name”]に値がセットされます。

store.set("settings.name", "BarHeader");

途中の階層が存在しない場合は、自動的に作成されます。上記の例の場合、もし“settings”が存在しない場合は、“settings”という階層が、自動的に作成されます。

パラメータ

パラメータ型説明
key
必須
String値をセットするキーを指定します。
value
必須
*セットする値を指定します。

戻り値

なし。

Previous Next

© 2019-2023 Masaki Yasutake

Bitsmist Frameworks

Table of Contents

Table of Contents

  • ChainableStore
    • 概要
    • プロパティ
      • items
      • localItems
    • コンストラクタ
      • Constructor(settings)
    • メソッド
      • chain(store)
      • clone()
      • get(key, defaultValue)
      • merge(value, merger)
      • set(key, value)

全般

  • 概要
  • インストール
  • サンプルコンポーネントを作る

コンポーネントについて

  • ロード
  • 設定
  • イベント
  • オーガナイザによる拡張

リファレンス - コンポーネント

  • Component

リファレンス - オーガナイザ

  • EventOrganizer
  • LoaderOrganizer
  • OrganizerOrganizer
  • SettingOrganizer
  • StateOrganizer
  • TemplateOrganizer

リファレンス - ストア

  • Store
  • ChainableStore

リファレンス - ユーティリティ

  • AjaxUtil
  • ClassUtil
  • Util