Flux の特徴は何か、その説明として「一方向」という表現は適切か
react/fluxでデータの流れが一方向、一方向データバインディング、と説明されるのに違和感を感じる。それ普通のことだから。なにも説明してないから。
2016-06-22 21:47:09何かが何かに対して起きたことと、それに対してどう処理するかを、結合しないで分けて考えて、前者をデータとして扱う、と言うことでしょ。一方向って言うことに、なんか意味あるの?>flux
2016-06-22 21:53:19このツイートについて考えている。 twitter.com/uehaj/status/7… twitter.com/uehaj/status/7…
2016-06-23 08:08:08データバインディングは、データとビューをバインディングしましょう、一方向データバインディングはデータの変更をビューに一方向に伝える、双方向データバインディングはデータの変更をビューに、ビューの変更をデータに伝えるもの、という理解。
2016-06-23 08:13:42双方向データバインディングも極端に言えば、一方向のデータのやりとりを持っているだけだよね。じゃあ、それ一方向データフローと呼ぶかって、違うはず。
2016-06-23 08:15:15意味が分かりづらいな。双方向データバインディングをデータ→ビュー→データ→ビューに自動更新するものじゃん、一方向じゃん、って主張に違和感がある。
2016-06-23 08:16:38まず Flux における「一方向」は「一方向データフロー」のことで「一方向データバインディング」のような局所的なものじゃない気がする。twitter.com/bouzuya/status… なぜそう思うのか。
2016-06-23 08:33:24@bouzuya 2つの説明に分けていいんじゃないかなぁ。commandパターンで状態の変化はaction投げてstore経由、obseverパターンでデータバインディング。
2016-06-23 08:36:02@kuy そうですよね。まず Flux の言う「一方向」と「一方向データバインディング」はまったく別のレベルでの話なんですよね。
2016-06-23 08:37:21話をややこしくしている気はするけど、ビューが状態を持っていて、そこと双方向データバインディングしていても、一方向データフローになりうる。というか react は state を持てるようになっているので、それに近い構造をつくれる。
2016-06-23 08:40:50@bouzuya はい、まさに。個人的に一方向って言い方好きでないので、オブジェクト間の情報のやりとりの仕方を定めた(制限した)だけだと思ってます。
2016-06-23 08:45:21@kuy いまのぼくの動機はもっといい表現が見つけたいとか、一方向だと感じる理由を自分の中で整理したいというあたりです。dispatcher 、store 経由に制限して、部分 View が個々にサイクルをつくるのではなく、全体でひとつのサイクルにしている、そのフローが一方向?
2016-06-23 08:53:51@bouzuya 個々のViewが(ほかのViewに影響しうる)modelを各々で持つとカオスというのがfluxが解決しようとしていた問題という認識 infoq.com/jp/news/2014/0…
2016-06-23 09:04:12@kameturu ありがとうございます。store (元図でのmodel) の分離自体は flux に限らずあること、dispatcher を hub として使うことが分かりました。store よりは dispatcher 経由に集約することこそ重点が置かれてそうな気がします。
2016-06-23 09:11:31twitter.com/bouzuya/status… を踏まえると、一方向以前に、データフローを集約することに意味がありそうだ。集約し、一本化するからこそ、一方向に見えるのではないか。逆にバラけていれば一方向に統一されているようには見えないのではないか。
2016-06-23 09:16:21@bouzuya 全体で1つの、という表現はいいですね。そもそもstateはstoreに置いてviewに持たせないというのも特徴だと思うので。
2016-06-23 09:18:10単に集約するだけではなく、方向性を重視するのはなぜか?それは直接 dispatcher を view が subscribe するわけでなく、store 経由で得るからだろうな。
2016-06-23 09:18:11