flux、reduxを一言で説明してみる
こんにちは。Jildinのトラです。
fluxを初めて知った時、ディスパッチャーだのストアだのアクションだのビューだの
結局何がしたいんだよ!っていう感じでした。
よく出てくるあの図ですね。
reduxはもう少しシンプルな図になりますね。
それではfluxやreduxを一言で説明してみます。
「アクションでしかデータが変わらないようにすること」
うーん、どうですかね。あまりわかりやすくできている自信がないので解説します。
もともとfluxはfacebookが提唱しているアーキテクチャです。
膨大なソースコードで動くソフトウェアを作っていると、機能を追加する時や
不具合を直す時に、何がどうなってんの状態になりがちなんですね。
で、特に
「このデータはいつどこで変更されたの?」とか
「このデータってどこで触ったらいいの?」ってなるわけです。
型がある言語であれば
オブジェクトをきちんと守ることも実装次第でできるわけですが
javascriptのような自由な言語では気をつけていても
データが自由に変更できてしまうため
カオスな状態になりやすいのです。
immutableにする方法もなくはないですが。。
そこで、図のようなループを作って
「この順番でデータの更新をしてくださいね。」
という考え方なんですね。
だからいきなりstoreにアクセスするという逆の方向に進むことは
できなくしましょうというのがfluxアーキテクチャです。
この一方通行はfacebookのreactのような仮想domと相性がいいので
今大変流行しているんだと思います。
fluxのフレームワークはたくさん出ています。
fluxのアークテクチャを元にfacebookが自らフレームワーク化したのがreduxです。
なのでfluxとreduxを一言で説明するなら
「アクションでしかデータが変わらないようにすること」
ですかね。
一言でいい感じに説明できるいい案があれば、更新したいです。