React, Vue 및 Angular와 같은 컴포넌트기반은 복잡한 UI를 간단한 컴포넌트로 분해하는 데 도움이 되지만, 해결은 될 수 없습니다(갯수가 너무 많아짐) 그래서 이를 해결하고자,
storybook은 UI 개발환경이며,UI를 컴포넌트 단위로 테스팅 해볼 수 있는 툴(구성 요소를 자동 으로 시각적으로 테스트가능)입니다.
storybook을 처음 테스트 해보기위해 프로젝트에 관련 파일 삭제를 진행하였으며, 오직 storybook을 위한 프로젝트를 만들었습니다
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"storybook": "start-storybook -p 6006",
"build-storybook": "build-storybook"
},
저는 테스트를 위해서 스크립트를 최대한 간단하게 수정하였습니다
"scripts": {
"start": "start-storybook -p 6006",
"build": "react-scripts build"
},
-> npm start 시 나오는 화면
export를 변경하여 새롭하게 추가되는것을 확인이 가능
JavaScript 기반으로 진행하여 prop-type를 설치했습니다
-> size 및 color등을 손 쉽게 추가 및 변경이 가능
-> button.css에 super를 지정해주면 적용이 된다.
.storybook-button--large {
font-size: 16px;
padding: 12px 24px;
}
.storybook-button--super {
font-size: 120px;
padding: 12px 24px;
}
참고 ENUM 해당 부분참고하여 radio가 아닌 select등으로 수정이가능
-> main.js란?
가장 상단에 있는 .storybook 디렉토리에 존재하며 우리가 메인내부에서 활용하려는 구성이 포함되어있습니다.
-> 설치한 라이브러리 두개를 적용시킨다
App.js를 Storybook.js로 이름을 변경하였습니댜(script실행을 하지않기 위해서입니다)
...Storybook.js
export const StoryBookTest=()=>{
return(<h1>StoryBookTest</h1>)
}
props를 해당 부분 처럼 입력
=> TypeScript의 경우는 필요하지않습니다
-> 결과 창
StoryBook.stories.js 수정
import { StoryBookTest } from "../StoryBook";
export default {
title: "Storybook - A Customizable React Table Component",
component: StoryBookTest,
};
const Template = (args) => <StoryBookTest {...args} />;
export const Default = Template.bind({});
Default.args = {
rows: [
["This", "is", "just", "a", "test"],
["This", "is", "also", "a", "test"],
["Just", "a", "little", "more", "data"],
["Row", "number", "four", "right", "here"],
],
headers: ["Col 1", "Col 2", "Col 3", "Col 4", "Col 5"],
};
argTypes를 수정하여 row,header 수정 불가능 하두록 수정 참고
-> MDX는 스토리북에 포함되지는 않습니다
스토리북을 사용하여 구성요소를 렌더링하는 동시에 마크다운을 문서화하고 작성할 수 있습니다.
구성요서를 개발하는데 스토리북을 사용되긴 하지만 구성요소를 시연할수있는 좋은 방법이기도 하고, 사람들에게 문서를 제공이 가능합니다
-> 보다간단하게 해당 문서가 작성이 가능합니다
스크린샷 딱 보이 노트북 새거 사신거 같네요^^