Facebookが提唱するアーキテクチャ、FLUXとは単一方向のデータフローを実現するためのもの

FLUXとは ~ 概要 ~

Facebookが提唱している、UIを構築するためのアプリケーションアーキテクチャです。 Reactと一緒に語られることが多いですが、FLUXは特定のツールに依存したフレームワークではなくアーキテクチャのパターンの一つなのでReactを使わなくても実装可能です。

f:id:arakaji-yuu:20190109095108p:plain

FLUXの特徴は、Action → Dispacher → Store → View と単一方向のデータフローによってUI設計をしていることです。 これによりデータフローによる複雑性をへらし、コードの可読性や堅牢性を高めています。

従来の手法とはなにが違うの?

よく比較されるMVCアーキテクチャとの違いは、データフローを単一方向に限定したこと。 MVCのControllerとModelは複数のモデルとControllerが相互にデータをやり取りすることで状態を把握することが困難なりがちだが、FLUXは単一方向データフローを実現することでこの課題を解決している。

技術や手法のキモはどこか?

Dispacherをシングルトンにすること、どのイベントに反応するかはStore側でハンドリングできるようにすること。 それによってStoreの追加による機能拡張も容易になる。

参考URL

Flux | Application Architecture for Building User Interfaces

flux/examples/flux-concepts at master · facebook/flux · GitHub

flux/examples/flux-logging at master · facebook/flux · GitHub