0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】React、Flux、Redux、Webpack、SSRについて

Last updated at Posted at 2021-08-29

職場でReactを使ってフロントエンドを構築していますが、サービスの注文履歴画面にエラーが発生している模様。
まずQAリストを作成し、それに則ってエラーの解消をしていきたいところですが、
そもそもReact周りの知識がないことで、コードのどこの部分を検証すれば良いのかさえも分からなかったため、
一つ一つ理解していくための自分用メモです。
(上司によると、フロントではstoreやview周りをチェックする必要があるとのこと。)

 Flux

Flux(フラックス)はFacebook社が提唱している、クライアントサイドのWebアプリケーション開発のためのアプリケーション・アーキテクチャ(設計思想)です。単方向のデータフローを構築できることが最大の特徴で、開発の規模が大きくなってもデータの流れを見失いづらいことが大きなメリットです。Reactとの併用を主に想定して生み出されたため、ReactによるWebアプリケーション開発を行う多くの現場で採用されています。

名前 役割
Store(ストア) アプリケーションの状態データを保持するオブジェクト、状態の更新を実施する処理
Action(アクション) 状態を更新するための指示内容を表すメッセージ
Dispatcher(ディスパッチャー) Storeに対してActionによる更新指示を行う関数

Fluxの最大の特徴「単方向データフロー」

スクリーンショット 2021-08-29 21.48.42.png

状態の更新指示内容である「Action」を関数「Dispatcher」で「Store」に伝えて状態を更新し、その結果を「View(React)」に伝える、といった流れです。

実際にアプリに組み込んだ場合には、ユーザーが画面を操作したイベントに応じて新たなActionを発行(dispatch)して、状態と画面を更新していく形になるので、次の通りになります。

スクリーンショット 2021-08-29 22.02.15.png

 上図に沿って初期化後の処理を一つひとつ見ていくと、次のことをしています。

1.ユーザーがViewを操作する(ボタンを押す、文字を入力する、など)
2.更新したい事柄をActionの形にまとめて、Dispatcherに渡す
3.DispatcherからActionを渡されたStoreが、Actionの内容に応じて状態を更新する
4.Storeの状態が更新されたことを検知したViewが書き換わる

Fluxアーキテクチャを採用したアプリは、このデータフローを繰り返していくことになります。データの流れを逆流させたり、Dispatcher以外の方法でStoreを更新したりすることはできないので、アプリの動きを把握しやすいです。Fluxが開発規模の拡大に強いとされる理由はここにあります。

 引用 
アプリの状態管理を安全に行うためのFluxとRedux

▼こちらも参考になります。
Fluxとはなんなのか

 Redux

Reduxは、Reactが扱うUIのstate(状態)を管理をするためのフレームワークのこと。
React以外にもAngularJSやjQueryなどと併せて使用することもできるが、Reactと使用するのが一番相性がいい。

React→stateの管理するデータフローにFluxを提案
Redux→Fluxの概念を拡張してより扱いやすく設計

▼こちらも参考になります。
[[フロントエンド] Reduxの考え方をシンプルに理解しよう(入門記事)]
(https://www.yoheim.net/blog.php?q=20191201)

FluxをReactとReduxを用いたショップアプリに落とし込んで考えてみる

Container

ショップ。接続されたコンポーネント。

Action

ショップスタッフ。例えば在庫が減ってきたら管理人に「在庫の補充をお願いします」と変更(Action)を依頼(Dispatch)する人。

Reducer

管理人、マネージャー。ショップスタッフ「Action」からの依頼を受けて、それを許可する人。

Store

全ての状態を一元管理する「倉庫」
管理人「Reducer」の指示によってStoreからまた新しい商品がショップに並べられる。

mapStateToProps、mapDispatchToProps

新しく発行された状態をコンテナに接続する関数

WebpackとSSRについて

こちらの記事を読みましたが、ザックリとしかまだ読めていません。

これで全体像はなんとなく分かった気がしますが、正直浅い理解です。。。
まずはとにかくまずはインプットしていかないないとと思い、
Udemyのこちらの教材が良いという情報があったため購入してみました。
英語ですが翻訳しながら理解していきたいと思います。
[Udemy:Modern React with Redux]
(https://www.udemy.com/course/react-redux/)
早くコードが書けるようになりたいです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?