Article Outline
コンポーネントを作るときに気をつけてる2つのこと
TOC
Collection Outline
最新記事
- Next.js 北九州市のイベント情報を取得する
- Next.js × now がやばい
- 競プロ日記 ABC15
- 競プロ日記 ABC159
- Kaggle 住宅価格予測 単回帰分析してみる
- 単回帰分析のFlow
- React Native Styleをいい感じに
- React Movie Search を TS で.
- useRefの使い方がわからん
- Heroku PostgreSQL の使い方
- ラズパイとLEDマトリクスパネルで遊ぶ
- querySelectorAllで取得した要素は配列ではないらしい
- React HookでTodoアプリを作る
- Kaggle 住宅価格予測 重回帰分析してみる
- Kaggle 住宅価格予測 多項式回帰してみる
- Webフロントのすべて
- 新しいMacBook Airが届いた!
- 日向坂46のニュースをスクレイピング
- イコラブのニュースをスクレイピングする!
- 推しのブログをスクレイピング
当たり前のことすぎて誰も教えてくれなかった。
コンポーネントを作るときに気をつけてる2つのこと
親コンポーネントからstyleを当てれるようにする
コンポーネント自体に
width, height
やmargin
を指定しない
1についてはpropsにclassNameを追加することで実装できます。
スタイリングにはtailwindcssを使っています。実装例を見てみましょう。
type Props = {
// classNameを受け取る
className?: string
}
const Component: React.FC<Props> = ({ className }) => {
return (
{/*配列にしてjoinで繋げることで親からのclassNameを適用*/}
<div className={['border rounded-2xl', className].join(' ')}>...</div>
)
}
2についてはそのままなのですが、コンポーネント自体に例えば margin-top: 1rem
とつけたとき、
もし他の場所ではmargin-top: 2rem
にしたいってなると融通がききませんね。
なのでmargin等の指定は親コンポーネントですることで呼び出し元から制御できます。
で、そのためには1が必要ってわけですね。
1で実装したComponentを呼び出す例を見てみましょう。
const Page = () => {
return (
<>
{/*親からclassNameを追加できる*/}
<Component className="mt-2" />
{/*widthも親から指定しましょう*/}
<Component className="w-1/2" />
</>
);
};
簡単なことですがこれら2つを気をつけるだけで、再利用可能なコンポーネントを作ることができます。
でわ。
[!NOTE] 親コンポーネントからstyleを当てれるようにする
[!NOTE] コンポーネント自体に
width, height
やmargin
を指定しない