背景
- リストでチェックボックスのついてるやつをReact + Fluxでつくる
- このときのjsレイヤのデータ構造をどうするか
問題
- 単純にリストにするとアクションを適用するオブジェクトを選ぶのにfilterしないといけないのでは?
こんなAction
{
action: "LIST_SELECTED",
id: 123,
}
こんなModel(Front)
const HogeRecord = new Record({
id: undefined,
name: undefined,
price: undefined,
selected: false,
});
class Hoge extends HogeListRecord {
}
const hogeLists = new List([hoge0, hoge1,...]);
解1
- そのままListを使う
- filterなどを使って見つける
- O(n)はかかる
- 表示するHogeオブジェクトが少ないなら問題ない
解2
- OrderedMapに突っ込む
- O(1)?で引けるがListではなくなる
- これでいいのか
どうしよう?
OrderedMapしかなさそう
その他
もしあんまりアクセスが無いなら逐一XHRでサーバ側に反映しても良さそう。あるいは、ブラウザにDBを持つか。