๐ก CDD๋ฅผ ์ง์ํ๋ ๋๊ตฌ์ธ Component Explorer ๋ฑ์ฅ
๐ก Component Explorer์ UI ๊ฐ๋ฐ ๋๊ตฌ ์ค์ ํ๋
๐ก ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ค์ ๋ฐ๋ก ๋ณผ ์ ์๊ฒ ํด์ค
๐ก ์ฌ์ฌ์ฉ์ฑ์ ํ๋ํ๊ธฐ ์ํด ์ปดํฌ๋ํธ๋ฅผ ๋ฌธ์ํ
๐ก ์๋์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํํ์ฌ ์๋ฎฌ๋ ์ด์
ํ ์ ์๊ฒ ํด ๋ค์ํ ํ
์คํธ ์ํ ํ์ธ ๊ฐ๋ฅ(๋ฒ๊ทธ ์ฌ์ ์๋ฐฉ ๊ธฐ๋ฅ)
๐ก ํ
์คํธ ๋ฐ ๊ฐ๋ฐ ์๋๋ฅผ ํฅ์์ํด
๐ก ์ดํ๋ฆฌ์ผ์ด์
์ ์์กด์ฑ์ ๊ฑฑ์ ํ์ง ์๊ณ ๋น๋ ๊ฐ๋ฅ
-UI ์ปดํฌ๋ํธ๋ฅผ ์นดํ๋ก๊ทธํ
-์ปดํฌ๋ํธ ๋ณํ๋ฅผ stories๋ก ์ ์ฅ
-ํซ ๋ชจ๋, ์ฌ๋ก๋ฉ๊ณผ ๊ฐ์ ๊ฐ๋ฐ ํด ๊ฒฝํ ์ ๊ณต
-๋ฆฌ์ํธ ๋ฑ์ ๋ค์ํ ๋ทฐ ๋ ์ด์ด ์ง์
๐ ์ค์น
npx storybook init
๐ ์์ฑ
//Text.js
import React from "react";
const Text = ({title, color}) => (
<h1 style={{color: color}}>{title}</h1>
);
export default Text;
//Text.stories.js(storiesํด๋ ์์)
import Text from "./Text";
export default {
title : "A/Text",
component: Text,
argTypes: {
title: {control : "text"},
color: {control : "text"}
}
}
const Template = (args) => <Text {...args}/>
//๊ฐ๋ณ
export const BlueText = Template.bind({});
BlueText.args={
title: "B",
color: "blue"
}