LoginSignup
18
18

More than 1 year has passed since last update.

Flux Standard Action(FSA)の説明

Last updated at Posted at 2019-06-02

Reduxの公式チュートリアルでは、

Other than type, the structure of an action object is really up to you. If you're interested, check out Flux Standard Action for recommendations on how actions could be constructed.

(訳)Typeを除き、Actionオブジェクトの構造はあなた次第です。もし興味があれば、Actionをどのように構築したらいいかの推奨事項についてFlux Standard Actionを調べてください。

とあります。このFlux Standard Action(FSA)について説明します。

目次

  • なぜFSAが必要なのか
  • FSAの内容

なぜFSAが必要なのか

前述の通り、Flux/ReduxのActionには、オブジェクトであれば何でも指定できます。

しかし、例えばアプリごとにデータをpayloadフィールドに入れたりdataフィールドに入れたりと実装がばらついた場合、コードを再利用することが難しくなります。

このような問題を回避するため、Actionの書き方に規約を持たせようというのがFSAが必要な理由です。

FSAの内容

Actionの条件

  • 必須条件
    • プレーンなJavaScriptオブジェクトであること。
    • typeプロパティを持つこと。
    • type,error,payload,meta」以外を含まないこと。
  • オプション条件
    • errorプロパティを持つこと。
    • payloadプロパティを持つこと。
    • metaプロパティを持つこと。

typeの条件

typeはActionの性質を特定するための識別子である。

typeは文字列定数であること。あるtypeどうしが等価であるならば、それらは厳密等価演算子(===)で比較して等価であること。

payloadの条件

payloadはどんな値でもよい。ActionのTypeについてではない情報や、Actionのステータスではない情報は、すべてpayloadに含まれるべきである。

errortrueであるときは、payloadはerrorオブジェクトであるべきである。

errorの条件

Actionがエラーを表す場合、オプションのerrorプロパティをtrueに設定してもよい。このとき、payloadはエラーオブジェクトであるべきである。

errorundefinednullなど、true以外の値である場合、エラーと解釈してはいけない。

metaの条件

metaは、どんな値であってもよい。metaは、payloadの一部ではないあらゆる種類の追加情報を意図している。

参考文献

18
18
1

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
18
18