SoyBeansLab / daizu-online-judge-frontend-old

We will be back. [WIP]
MIT License
4 stars 1 forks source link

re: Atomic Designの設計について #283

Closed ucpr closed 4 years ago

ucpr commented 4 years ago

概要

https://www.atmarkit.co.jp/ait/articles/1702/28/news017_2.html に寄せてやっていくことにする

    Atoms(Presentational Components)
 最小限単位のコンポーネントで、IconやButtonなどが該当します。親コンポーネントから渡されたpropsを元にHTMLを返却します。

    Molecules(Presentational Components)
 再利用前提のコンポーネントで、ListやModal、User thumbnailなどが該当します。親コンポーネントから渡されたpropsを元にHTMLを返却します。

    Organisms(Container Components)
 画面上の大きな一部のコンポーネントです。HeaderやEntry、Naviなどが該当します。この階層のコンポーネントでは、データ取得処理を記述したり、Redux Stateとconnectしたりして、状態を保持できます。ここで取得した状態はpropsとして、Molecules,Atoms のコンポーネントに引き継がれます。

    Templates
 path(URL)ごとのコンポーネントです。ひな型となるコンポーネントであるため、必要なパーツをOrganismsからインポートし、リスト化するだけの役割にします。

    Pages
 ベースとなるページのコンポーネントです。基本的には渡されたコンポーネント(this.props.children)をそのまま表示するだけのコンポーネントです。アメブロはSPAであるため、1ページのみ存在しています。

その他

ucpr commented 4 years ago
ucpr commented 4 years ago

Organismsでコンポーネントごとにディレクトリ作ってComponentとContainerで分けるのが良さそう?

ucpr commented 4 years ago

288

ucpr commented 4 years ago

Wikiに書いてcloseする