App.js
에 연결시키지 않아도 시각적으로 볼 수 있다.StoryBook
내에서 변화를 실행할 수 있다. npm i @storybook/cli // storyBook 모듈 설치
npx storybook init // React 폴더에 storybook 적용
npm run storybook // StoryBook 실행
npm i prop-types // PropTypes 사용시 필요한 모듈
자동적으로 storyBook
설치시 devDependencies
로 설치됨
init
적용시 .storybook
, src/stories
폴더 자동생성npm run storybook
실행시 StoryBook이 실행됨http://localhost:6006
포트에서 실행StoryBook
이용을 위한 stories
파일PropTypes
을 사용해서 해당 parameter
가 어떤 타입인지 작성한다. 예를 들어, string
의 경우 StoryBook
에서 수정하여 글씨가 어떻게 들어가는지 볼 수 있다.PropTypes.oneOf
의 경우 어떤 조건을 넣을지 선택적으로 작성할 수 있다.컴포넌트명.stories.js
로 작성한다. .storybook
의 파일에서 수정 가능하다고 한다.title
= Storybook
의 폴더 이름, component
= 만들어서 사용할 요소StoryBook
의 파일 이름이 된다.component
의 parameter
의 값을 작성한다. 물론, StoryBook
에서 수정 가능하다.styled-componets
를 사용하여 StoryBook
를 적용하여 블로깅이 된 것이 없고, 대부분 TypeScript
를 활용해서 나에게 필요한 자료를 찾는데 초반에 많이 헤맸다.styled-componets
가 갖고 있는 장점이 있지만, parameter
를 적용하려면 재 선언하여 사용해야 한다는 점과 parameter
를 css에 적용 하는 것이 불가능 하다고 생각했지만 일단, 2가지의 경우에는 잘 적용 시킬 수 있었다. (흰-검이 배경, 글씨가 반전되는 형태)figma
에서도 그대로 사용가능하다고 하니 프론트엔드 쪽에서 ProtoType 작성시에도 코드를 미리 작성한다는 이점이 있다.//! NewButton.js
import styled from "styled-components"
import PropTypes from 'prop-types';
const Button = styled.button`
width: 5.2em;
height: 1.4em;
border: 0.1em solid #000;
display: flex;
align-items: center;
justify-content: center;
background-color: ${props => props.color !== 'white' || "black"};
color: ${props => props.color};
`
NewButton.propTypes = {
label: PropTypes.string,
color: PropTypes.oneOf(["white", "black"])
}
function NewButton({label, color}) {
return(
<Button color={color}>{label}</Button>
)
}
export default NewButton
//! NewButton.stories.js
import NewButton from "../Atoms/NewButton"
export default {
title: "Atoms", // storybook 폴더 이름
component: NewButton
}
const Template = args => <NewButton {...args} />
// export: storybook 파일 이름
export const White = Template.bind({})
export const Black = Template.bind({})
White.args = {
label: "버튼",
color: "white"
}
Black.args = {
label: "button",
color: "black"
}