В этой статье блога мы рассмотрим различные методы рендеринга аргументов в Storybook 7, популярном инструменте для создания компонентов пользовательского интерфейса. Мы предоставим разговорные объяснения и примеры кода, которые помогут вам понять различные подходы. Давайте погрузимся!
- Основное использование аргументов в Storybook:
Чтобы отобразить аргументы в Storybook, вы можете определить их в истории компонента, используя свойствоargs
. Вот пример:
export const MyComponent = (args) => <div>{args.text}</div>;
export const Default = MyComponent.bind({});
Default.args = {
text: "Hello, Storybook!",
};
В этом примере MyComponent
принимает свойство text
, которое отображается внутри <div>
. История Default
привязывает компонент и устанавливает значение args
для отображения «Hello, Storybook!».
- Переопределение аргументов в отдельных историях.
Вы можете переопределить аргументы в отдельных историях, чтобы продемонстрировать различные варианты вашего компонента. Вот пример:
export const CustomText = MyComponent.bind({});
CustomText.args = {
text: "Custom Text",
};
В данном случае мы создали новую историю под названием CustomText
, которая заменяет свойство text
пользовательским значением.
- Использование декораторов для общих аргументов.
Вы можете использовать декораторы для применения общих аргументов к нескольким историям. Вот пример:
const withSharedArgs = (Story, context) => {
const args = {
text: "Shared Text",
};
return <Story {...context} args={args} />;
};
export default {
title: "MyComponent",
component: MyComponent,
decorators: [withSharedArgs],
};
export const Default = () => <MyComponent />;
export const CustomText = () => <MyComponent />;
В этом примере мы создали декоратор под названием withSharedArgs
, который устанавливает для свойства text
значение «Общий текст». К историям Default
и CustomText
будут применены общие аргументы.
- Использование элементов управления для изменения аргументов в пользовательском интерфейсе Storybook:
Storybook предоставляет элементы управления, которые позволяют изменять аргументы непосредственно в пользовательском интерфейсе. Вот пример:
export default {
title: "MyComponent",
component: MyComponent,
argTypes: {
text: {
control: "text",
},
},
};
export const Default = (args) => <MyComponent {...args} />;
Default.args = {
text: "Hello, Storybook!",
};
В этом примере мы добавили конфигурацию argTypes
, которая определяет элемент управления типа "text"
для свойства text
. Это позволит вводить текст в пользовательском интерфейсе Storybook, позволяя динамически изменять значение text
.
Отрисовка аргументов в Storybook 7 — это мощная функция, позволяющая демонстрировать различные варианты ваших компонентов. Мы исследовали несколько методов, включая базовое использование аргументов, переопределение аргументов в отдельных историях, использование декораторов для общих аргументов и использование элементов управления для изменения аргументов в пользовательском интерфейсе Storybook. Используя эти методы, вы можете создавать интерактивную и гибкую документацию по компонентам.