Skip to content

Instantly share code, notes, and snippets.

@non117
Last active December 14, 2016 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save non117/ac738b8fa7c2e6c2a9e43d2123b00276 to your computer and use it in GitHub Desktop.
Save non117/ac738b8fa7c2e6c2a9e43d2123b00276 to your computer and use it in GitHub Desktop.
fluxでのmodelのデータ構造について

背景

  • リストでチェックボックスのついてるやつを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を持つか。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment