Storybook是一个UI组件开发环境,它能让我们在主应用之外独立开发和展示组件。想象一下,它就像是一个组件的"试衣间",你可以在这里任意搭配和调整组件的各种状态,而不用担心影响到主应用。
首先,让我们在项目中安装Storybook:
```bash
npx sb init
安装完成后,我们来创建第一个Story。
-
分组管理:使用
title
字段进行分组,如Components/Button/Primary
。 -
添加文档:使用
parameters
为组件添加说明文档。
javascript复制
// 添加文档示例
export default {
title 'Components/Button',
component Button,
parameters {
docs {
description {
component '这是一个通用按钮组件,支持主要和次要样式。'
}
}
}
};
Storybook的Controls面板让我们能实时调整组件属性:
javascript复制
// Button.stories.jsx
export default {
title 'Components/Button',
component Button,
argTypes {
onClick { action 'clicked' }, // 添加点击事件追踪
size {
control {
type 'select',
options ['small', 'medium', 'large']
}
},
disabled { control 'boolean' }
}
};
-
记得在
.storybook/main.js
中配置正确的文件匹配模式 -
Story文件命名推荐使用
*.stories.jsx
或*.stories.tsx
-
避免在Story中使用全局状态管理
-
确保组件的props类型定义完整
装饰器可以为所有Story添加通用功能:
javascript复制
// .storybook/preview.js
export const decorators = [
(Story) =>; (
<;div style={{ padding '20px' }}>;
<;Story />;
<;/div>;
),
];
-
尝试为一个现有的组件创建Story
-
使用Controls面板调整组件外观
-
添加Actions追踪组件事件
-
为Story添加自定义装饰器
加油!让我们一起在Storybook的世界里探索更多有趣的可能性!