スマートおよびダムReactコンポーネント

記事「The document of undocumented react.js:The Context 翻訳を行い ました。そこでは、スマートで愚かなコンポーネントに関するDan Abramovの記事を参照しましたが、何らかの理由でそれはhabrahabrにあると考えました。 この短い記事は誰にとっても不必要ではないと思います。

スマートコンポーネントとダムコンポーネントの翻訳



Reactでアプリケーションを作成する際に非常に役立つシンプルなテンプレートがあります。 Reactをしばらく使用している場合 、おそらく既に理解しているでしょう。 これについてはこの記事詳しく説明していますが、いくつかの点を追加したいと思います。



コンポーネントを再利用する方がはるかに簡単であることがわかり、コンポーネントを2つのカテゴリに分けると議論できます。 私はそれらをスマートとダムと呼びますが、ファットとスキニー、ステートフルとピュア、スクリーンとコンポーネントなども聞きました。 これはすべて同じというわけではありませんが、考え方は似ています。



私の愚かなコンポーネント:



  1. Fluxアクションやストアなど、アプリケーションの他の部分とは無関係
  2. this.props.childrenでよく見られます
  3. 小道具だけでデータとコールバックを受け取る
  4. 独自のCSSファイルを持っています
  5. 時折、独自の状態を持つ
  6. 他の愚かなコンポーネントを使用できます
  7. 例:ページ、サイドバー、ストーリー、ユーザー情報、リスト




私のスマートコンポーネント:



  1. 1つ以上のダムまたはスマートコンポーネントをラップします
  2. ストアの状態を保存し、オブジェクトとして愚かなコンポーネントにスローします
  3. Fluxアクションを呼び出し、それらに愚かなコールバックコンポーネントを提供します
  4. 独自のスタイルを持つことはありません
  5. 自身でDOMを生成することはほとんどなく、レイアウトに愚かなコンポーネントを使用
  6. 例:UserPage、フォロワーサイドバー、StoryContainer、FollowedUserList


それらを異なるフォルダーに入れて、違いを明確にします。



このアプローチからの利益



  1. 責任の最良の分割。 この方法でコンポーネントを記述すると、アプリケーションとUIをよりよく理解できます。
  2. 最高の再利用性。 完全に異なる状態ソースで同じ愚かなコンポーネントを使用できます。
  3. 愚かなコンポーネント-これは実際にはアプリケーションの「パレット」であり、それらをすべて1つのページに配置し、デザイナーにそれらを構成させて、アプリケーションロジックにクロールすることができます。 このようなページで回帰テストを実行できます。
  4. これにより、サイドバー、ページ、ContextMenuなどの「レイアウトコンポーネント」を抽出し、異なるスマートコンポーネントで同じレイアウトを複製する代わりにthis.props.childrenを使用する必要があります。


コンポーネントはDOMを発行すべきではないことに注意してください。 UI間の境界のみを提供する必要があります。



All Articles