Component設計とCSS
@Eight
React.js meetup #3
2016/02/23
@halhide
自己紹介
• 大熊秀治(@halhide)
• Sansan株式会社
• 名刺管理アプリEightのwebエンジニアです
• APIからUIまで何でもやってます
• 足立区の比較的安全なエリアに住んでます😱
画像割愛
ReactとReduxで作ってます
2015/11月までは
Backbone.js
名刺管理アプリ感強め
2015/12月
ReactとReduxでリニューアル
ネットワークサービス感強め
どうやってComponentを定義
しているか?
機能ドリブンな例
FeedComponent
PostComponent
CommentComponent
※元画像割愛
<ProfilePhoto />
取得失敗時の処理をラップ
<CardImage />
取得URLの生成や、縦画像の時の
回転処理などをラップ
※元画像割愛
中身は単なる<img/>
画像URLの生成や失敗時の処理な
どをひとまとめにした
汎用的なものはどうか?
cssクラスさえ揃えておけばきっと大丈夫😇
onClickに関数設定するくらいしかやることないの
では😏
実 際 辛 い
ボタン風実装が乱立
<a/>, <button/>, <span/>, …
二度押し禁止🙅
クリック時のログ取りたいです🙏
見た目と振る舞いをま
とめよう
Button Component
• typeでレイアウトやテーマを指定する
• PRIMARY(_MINI) → submitやOKなどの青系のボタン
• SECONARY(_MINI) → キャンセル用の灰色のボタン
• htmlのbuttonタグのように使えて、ボタンとしての見た目や振
る舞いが揃う
• 機能追加、改善フェーズに入るとこういう細かいところの共通
化で開発効率がだいぶ上がる
<Button onClick={registration} disabled={alreadyRegistred} type=“PRIMARY” />
CSSは?
• rails上でsass使ってます
• Componentの階層構造に合わせて命名
• js:components/common/button.js
• css: “.common-button”
• 階層は”-”で表す
• .common-button 以下については、あまり決めてない
• BEMなどの特定の指針には従ってない
• Idやタグ指定はやめよう
• 無駄に詳細度をあげない
• Component内のcssはできるだけそこで閉じる
• CSS周りはまだまだ改善が必要😅
http://jp.corp-sansan.com/recruit/job/engineer_ruby.html
(ruby採用だけどjs書ける人も募集中🙏)
詳しいことは懇親会で🍻

React meetup 3_eight