Redux使うような気はするのだけど、Reduxを使わない場合は各位どうやってState管理してるんでしょうか?親コンポーネントがstateとメンバ関数を持っており、子コンポーネントはpropsかcontext経由でその値を参照しながら描画とイベントバインディングを行っています。日報で疑問を書いたら、id:r7kamuraさんが答えてくれた。Componentのthis.stateに入れておく設計とか。2016年9月1日facebookが想定してるのはこの用途かな。DOMサブツリー間で状態の共有が発生するか、設計段階で予見するの難しそう。原則として、木構造を小さくするべきだと思っている。木のデータ構造はノード間の依存関係があるからである。バケツリレーはノード間の結合を強くするので良くない。ページ全体のComponent木を部分木で構成するべきである。Componentとなる。部分木とは、UI上で意味のある単位で分割されたComponent木である。部分木同士が疎結合であるならば話は簡単なのだけど、部分木間でstateを共有したいとなると厄介なことになる。Componentにグローバル変数を置いてもそれを子孫に渡すにはバケツリレーかcontextが必要になる。contextは暗黙的にバケツリレーしてるだけなので(ちょっと認識が合ってるか自信はない)部分木同士に依存関係が発生することに変わりはない。私はReduxしか真面目に勉強しなかったのでReduxの話になるが、Reduxの場合は唯一のStoreにグローバル変数をぶち込んで好きなときに切り出して部分木に流し込むことができる。この時に部分木間でpropsが流れることはない。contextを使ってルートComponentからグローバル変数を配るの出来なくはないが、その辺(状態の共有)からがflux使う分水嶺になりそう。結論としてはこれになる。原始的Propsバケツリレーこうしたいおまけポエムとはいっても、人間は複雑なものを認知できないので、人間が直接触る木構造とかさっさと無くすべきだと思っている。スマートヒョンのGUI作る君だってGUIじゃないですか。木構造は機械に優しいが人間には優しくない。UIとか作っては弄っての繰り返しを避けられないので木構造の変更・メンテナンスを人間がやるはめになって消耗必至である。昨日ののあとに考えていた雑感。