Reactを中心に昨今のフロントエンド周りをぼちぼち調査中。
というか趣味のゲームを作ってる。
続Fluxわからん話
Fluxは未だによく分からんが、Reactのトップレベルコンポーネントだけで情報を管理するのはあまり良い手段ではなさそうであることはわかった。
データ構造=コンポーネント構造というのはちょっと違っていて、表示に現れる必要のないものや、コンポーネント側で閉じていれば良いものがある。
整理するとこうだ。
- 表示に現れない部分:Fluxで言うStore。MVCで言うModel。
- データ構造=コンポーネント構造の方程式が成り立つ大部分の範囲:トップレベルコンポーネントのstate。
- コンポーネントの中で閉じていれば良い話:適当なコンポーネントのstate。
これである。
な、わけで、Storeを切り出してみたが、今のところcallbackを駆使してデータの流れを単一方向に保たなくても全然問題ない。
View-Storeアーキテクチャで何ら問題ないのだ。
更新タイミングが知りたい、というのも、Storeが更新されたら速攻cookieもシンクロして更新するという程度なので、今のところsetterを作っておけば事足りる感じだ。
とはいえ、Actionを使った通知が欲しくなるというのも理解できる。
Storeの更新を必ずAction経由にすることで、Storeが自身の知らない間に更新されることを防げる……いや、でもこれだけだとsetterと同じかも……
まぁ要研究。
そんなことよりChromeがローカルファイルのcookie読み書きに対応してないのは微妙。
TabbedArea/TabPaneの話
どうも最終的にレンダリングされる構造とは関係なく、TabbedAreaの直下にTabPaneを配置する必要があるようだ。
いや、そんだけ。
しかしReact-Bootstrapは適当に作ってもきちんとしたViewが作れていいね。
Bootstrap(&そのへんで拾ってきたテーマ)のおかげでノンデザイナーでもそれなりに見れるサイトが作れるし、Reactのおかげでコントロールの制御も楽ちんだ。
結構気に入ったのでBindで作ってた公式サイト作りなおそうかな……
jsdoc
うんまぁ使い方は分かった。
本格的に使うなら、そろそろglup導入してプリプロセスもろとも一気に全部処理するようにしたいね。
エディタはAtom使ってるのだけれども、
/**
と打ち込んだ時に
/**
*
*/
と補完してくれないのが気になる。
ここ3年ほどしばらくJava(とAS3)書いてたから、Eclipse脳になっているのだ。
しかしなんで趣味のコードってコメントあんま書かないんだろうな。同じ人間とは思えん。自分だけしか読まないからだろうか。