Reactでコンポーネントを増やしていくと、「この部品どう使うんだっけ?」「見た目崩れてない?」みたいな問題が出てくる。
Storybookを導入すると、それがすべて一発で解決する。
UIをドキュメント化・単体表示・動作確認できる環境、それがStorybook。
storybook
関連パッケージを追加npx storybook init
で設定ファイル生成*.stories.tsx/jsx
ファイルを作ってUIを登録npm run storybook
でローカル起動bash
npm install
npm run storybook
jsx
// Button.stories.js
import { Button } from './Button';
export default {
title: 'Components/Button',
component: Button,
};
export const Primary = () => (
<Button label="Click me" variant="primary" onClick={() => alert("clicked")} />
);
export const Secondary = () => (
<Button label="Cancel" variant="secondary" />
);
title
でStorybook上のカテゴリと表示名を決定component
に対象コンポーネントを指定Storybookは開発中のUIパーツのプレビュー環境として超便利。
新しく作ったコンポーネントをチームに共有するときも、「とりあえずStorybook見て」でOK。
Controlsパネルで、文字列・数値・色などをリアルタイムで変更できる。
jsx
<Button label="テスト" variant="primary" />
→ これをPropsを変えながらその場で挙動確認できる。
jsx
<Button onClick={action("clicked")} />
→ Actions
アドオンを使えば、クリックなどのイベントログが見えるようになる。
UIのすべての状態をストーリー化しておけば、バグやデグレを未然に防げる。
.stories.js/ts
が肥大化しすぎないように注意👇 サンプル:Storybookで開発・管理されたButtonコンポーネント