React용 스토리북 — ArgsTable
5854 단어 reactprogrammingjavascriptwebdev
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
Storybook을 사용하면 다양한 매개변수를 사용하여 구성 요소의 프로토타입을 쉽게 만들 수 있습니다.
이 기사에서는 ArgsTable을 Storybook과 함께 추가하는 방법을 살펴보겠습니다.
문서 블록
문서 블록은 스토리북 문서 페이지의 빌딩 블록입니다.
DocsPage는 doc 블록의 조합을 사용하여 문서를 구성합니다.
인수 테이블
Storybook 문서는 구성 요소에 대한 구성 요소 인수 테이블을 자동으로 생성합니다.
표에는 구성 요소의 인수가 나열되어 있습니다.
또한 컨트롤과 통합하여 현재 렌더링된 스토리의 인수를 변경할 수 있습니다.
이를 문서화하는 주석을 추가하여 자체 코드로 확장할 수 있습니다.
예를 들어,
Button.js
파일에서 다음과 같이 작성할 수 있습니다.import React from 'react';
import PropTypes from 'prop-types';
import './button.css';
export const Button = ({ primary, backgroundColor, size, label, ...props }) => {
const mode = primary ? 'button-primary' : 'button-secondary';
return (
<button
type="button"
className={['button', `button-${size}`, mode].join(' ')}
style={backgroundColor && { backgroundColor }}
{...props}
>
{label}
</button>
);
};
Button.propTypes = {
primary: PropTypes.bool,
/**
String for the background color
*/
backgroundColor: PropTypes.string,
size: PropTypes.oneOf(['small', 'medium', 'large']),
label: PropTypes.string.isRequired,
onClick: PropTypes.func,
};
Button.defaultProps = {
backgroundColor: null,
primary: false,
size: 'medium',
onClick: undefined,
};
Button
구성 요소를 생성합니다.backgroundColor
소품 위에 댓글이 있습니다.이것은 args 테이블의 설명 열에 표시됩니다.
문서 페이지
구성 요소에 대한 DocsPage를 추가하려면 파일에 대한
components
속성이 있는 개체를 내보내면 됩니다.예를 들어 다음과 같이 작성할 수 있습니다.
src/stories/Button.stories.js
import React from 'react';
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button
};
const Template = (args) => <Button {...args} />;
export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
export const Secondary = Template.bind({});
Secondary.args = {
label: 'Button',
};
export const Large = Template.bind({});
Large.args = {
size: 'large',
label: 'Button',
};
export const Small = Template.bind({});
Small.args = {
size: 'small',
label: 'Button',
};
우리는 다음을 가지고 있습니다:
export default {
title: 'Example/Button',
component: Button
};
기본 내보내기는
component
속성이 있는 객체를 내보내 버튼에 Button
구성 요소를 표시하도록 합니다.ArgsTable 사용자 정의
다음과 같이 작성하여 ArgsTable을 사용자 정의할 수 있습니다.
src/stories/Button.stories.js
import React from 'react';
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button,
argTypes: {
primary: {
description: 'overwritten description',
table: {
type: {
summary: 'summary',
detail: 'some detail'
},
},
control: {
type: null,
},
},
},
};
const Template = (args) => <Button {...args} />;
export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
export const Secondary = Template.bind({});
Secondary.args = {
label: 'Button',
};
export const Large = Template.bind({});
Large.args = {
size: 'large',
label: 'Button',
};
export const Small = Template.bind({});
Small.args = {
size: 'small',
label: 'Button',
};
argsTypes
인수에 대한 속성이 있는 개체와 함께 primary
속성이 있습니다.description
속성에 설명이 있습니다.table
설명에 채워질 개체가 있습니다.summary
는 detail
를 표시하도록 토글할 수 있는 버튼으로 표시됩니다.control
에는 인수를 설정하는 컨트롤이 있습니다.스토리에 대해 표시되는 소스 스니펫을 변경할 수 있습니다.
그렇게 하려면
docs.source.code
속성을 설정할 수 있습니다.import React from 'react';
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button,
argTypes: {
primary: {
description: 'overwritten description',
table: {
type: {
summary: 'summary',
detail: 'some detail'
},
},
control: {
type: null,
},
},
},
};
const Template = (args) => <Button {...args} />;
export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
Primary.parameters = {
docs: {
source: {
code: 'Some custom string here'
}
},
};
export const Secondary = Template.bind({});
Secondary.args = {
label: 'Button',
};
export const Large = Template.bind({});
Large.args = {
size: 'large',
label: 'Button',
};
export const Small = Template.bind({});
Small.args = {
size: 'small',
label: 'Button',
};
코드 표시 버튼을 클릭하면
‘Some custom string here’
문자열이 표시됩니다.결론
구성 요소가 Storybook에서 허용하는 인수를 문서화하기 위해 ArgsTable에 다른 것을 표시하는 코드를 추가할 수 있습니다.
Reference
이 문제에 관하여(React용 스토리북 — ArgsTable), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/storybook-for-react-argstable-2nne텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)