인수, 컨트롤과 Actions 애드온
인수로 스토리를 대화형으로 만들고 Actions 애드온으로 컴포넌트 이벤트를 기록합니다.
인수, 컨트롤과 Actions 애드온은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Args란 무엇인가요?
Args는 스토리에 전달되는 입력값(속성)입니다. 스토리북은 args 객체를 사용하여 구성 요소를 렌더링하고 스토리북 사용자 인터페이스에서 실시간 속성 편집기인 컨트롤 패널을 제공합니다.
Args 정의하기
스토리 객체에 args를 설정합니다. 스토리북은 TypeScript 속성 타입에서 컨트롤 유형을 추론합니다.
export const Primary: Story = {
args: {
label: 'Click me',
variant: 'primary',
size: 'medium',
disabled: false,
},
};컨트롤 패널
args가 정의되면 스토리북은 캔버스 아래의 Controls 패널에 대화형 컨트롤을 렌더링합니다. 컨트롤을 변경하면 코드 변경 없이 새 속성으로 스토리를 다시 렌더링합니다.
컨트롤 사용자 지정을 위한 ArgTypes
속성이 컨트롤에 표시되는 방식을 사용자 지정하려면 메타에서 argTypes를 사용합니다. 유형, 옵션, 설명, 기본값을 설정할 수 있습니다.
const meta: Meta<typeof Button> = {
component: Button,
argTypes: {
variant: {
control: 'select',
options: ['primary', 'secondary', 'danger'],
description: 'Visual style of the button',
},
size: {
control: { type: 'radio' },
options: ['small', 'medium', 'large'],
},
disabled: { control: 'boolean' },
label: { control: 'text' },
},
};컨트롤에서 Args 숨기기
argTypes에 control: false를 설정하면 컨트롤 패널에서 속성을 숨길 수 있습니다. 내부 속성이나 함수에 유용합니다.
argTypes: {
onClick: { control: false },
className: { table: { disable: true } },
},작업 애드온
작업 애드온(addon-essentials의 일부)은 속성 함수 호출을 Actions 패널에 기록합니다. 패널에 표시되는 감시 함수를 만들려면 @storybook/test의 fn()을 사용합니다.
import { fn } from '@storybook/test';
const meta: Meta<typeof Button> = {
component: Button,
args: {
onClick: fn(), // click events appear in Actions panel
onHover: fn(),
},
};argTypes로 작업 자동 연결하기
argTypes: { onClick: { action: 'clicked' } }를 사용하면 fn()을 가져오지 않고도 작업 처리기를 자동으로 만들 수 있습니다.
const meta: Meta<typeof Select> = {
component: Select,
argTypes: {
onChange: { action: 'changed' },
onBlur: { action: 'blurred' },
},
};전역 Args
모든 스토리에 전역으로 적용하려면 preview.ts에 args를 설정합니다. 모든 구성 요소에 영향을 주는 테마, 로캘 또는 뷰포트 인수에 유용합니다.
// .storybook/preview.ts
export const globalTypes = {
locale: {
description: 'Internationalization locale',
defaultValue: 'en',
toolbar: {
icon: 'globe',
items: ['en', 'fr', 'de'],
},
},
};스토리북 도구 모음
toolbar 구성의 전역 args는 스토리북 도구 모음에 버튼으로 표시되므로 테마, 로캘 또는 중단점을 전역으로 전환할 수 있습니다.
Args 조합하기
다른 스토리의 args를 전개하여 이를 기반으로 새 스토리를 만듭니다. 변형 스토리를 만들 때 중복을 줄일 수 있습니다.
export const Primary: Story = {
args: { label: 'Save', variant: 'primary' },
};
export const PrimaryLoading: Story = {
args: { ...Primary.args, loading: true },
};
export const PrimaryDisabled: Story = {
args: { ...Primary.args, disabled: true },
};컨트롤 값 매핑하기
argTypes에서 mapping을 사용하여 사람이 읽기 쉬운 컨트롤 옵션을 실제 속성 값에 매핑합니다(예: 아이콘이나 구성 요소).
argTypes: {
icon: {
options: ['Star', 'Heart', 'None'],
mapping: { Star: <StarIcon />, Heart: <HeartIcon />, None: null },
control: { type: 'select' },
},
},빠른 확인
스토리 인수로 사용될 때 fn() 함수는 어떤 작업을 수행합니까?
복습
인수는 컨트롤 패널(실시간 속성 편집기)과 액션 애드온(이벤트 기록기)을 모두 작동시킵니다. 더 풍부한 컨트롤을 사용하려면 argTypes로 인수 유형을 정의하고, 액션을 기록하려면 @storybook/test의 fn()을 사용하며, 중복을 줄이려면 스토리 간에 인수를 조합하십시오.
자주 묻는 질문
“인수, 컨트롤과 Actions 애드온” 강의는 무료인가요?
네 — “인수, 컨트롤과 Actions 애드온” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“인수, 컨트롤과 Actions 애드온”에서 뭘 배우나요?
인수로 스토리를 대화형으로 만들고 Actions 애드온으로 컴포넌트 이벤트를 기록합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
React Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“인수, 컨트롤과 Actions 애드온” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- React 프로젝트에 Storybook 설정하기
- CSF3 스토리 작성하기
- 인수, 컨트롤과 Actions 애드온
- Storybook 테스트와 시각적 회귀