CDD(Component-Driven Development)
컴포넌트
단위로 개발하여 컴포넌트
를 조립하여 웹페이지를 완성하는 개발 방식.CSS
, HTML
, JS
를 전부 수정하겠지만, CDD
를 이용하면 버튼 컴포넌트
를 만들어 추가하는 방식으로 해결 할 수 있다.CCD
를 돕는 툴이다.Hot Module Replacement, HMR
stories
로 저장한다.npx degit chromaui/intro-storybook-react-template 프로젝트 폴더 이름
npx -p @storybook/cli sb init
npm run storybook
을 이용하여 실행한다.import { Button } from "@storybook/react/demo";
// 데모파일 내부 내용
declare const Button: {
({ children, onClick, }: {
children: React.ReactNode;
onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
}): JSX.Element;
displayName: string;
propTypes: {
children: PropTypes.Validator<PropTypes.ReactNodeLike>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
};
defaultProps: {
onClick: () => void;
};
};
→ 위와 같은 형식의 포맷을 CSF(Component Story Format)
이라고 하며, Storybook
에서 사용되는 메타데이터를 담는 포맷이다.
import React from "react";
export const Button = () => {
return (
<button>Default Button</button>
);
};
stories
폴더에 관리할 컴포넌트를 커스텀한 파일을 작성한다.컴포넌트명.stories.js
가 되어야한다.Button.js
이므로, Button.stories.js
가 되어야한다.import React from "react";
import { Button } from "@storybook/react/demo";
export default {
title: "Button", // 보여질 이름을 지정한다.
component: Button
};
// 아래에 작성한 케이스들이 스토리북상에서 보여진다.
// 스토리 1
export const Primary = () => <Button>Hello Button</Button>;
// 스토리 2
export const Secondary = () => <Button>Bye Button</Button>;