文档
Storybook 文档

什么是故事?

故事捕获 UI 组件的渲染状态。开发人员为每个组件编写多个故事,描述组件支持的所有“有趣”状态。

安装 Storybook 时,CLI 会创建示例组件,展示你使用 Storybook 可以构建的组件类型:按钮、页眉和页面。

每个示例组件都有一组故事,展示它支持的状态。你可以在 UI 中浏览这些故事,并在以 .stories.js|ts 结尾的文件中查看它们的代码。这些故事是用 组件故事格式 (CSF) 编写的,它是一种基于 ES6 模块的编写组件示例的标准。

让我们从 Button 组件开始。故事是一个描述如何渲染目标组件的对象。以下是如何在“primary”状态下渲染 Button 并导出一个名为 Primary 的故事。

Button.stories.ts|tsx
import type { Meta, StoryObj } from '@storybook/react';
 
import { Button } from './Button';
 
const meta: Meta<typeof Button> = {
  component: Button,
};
 
export default meta;
type Story = StoryObj<typeof Button>;
 
export const Primary: Story = {
  args: {
    primary: true,
    label: 'Button',
  },
};

Button story with args

通过点击 Storybook 侧边栏中的 Button 来查看渲染后的 Button。请注意,args 中指定的价值观被用来渲染组件,并且与 Controls 选项卡中所显示的价值观相匹配。在故事中使用 args 还有其他好处

  • Button 的回调会被记录到 Actions 选项卡中。点击尝试一下。
  • Button 的参数可以在 Controls 选项卡中动态编辑。调整控件。

使用故事

Storybook 使得一次在一个组件的一个状态(也称为故事)上工作变得很容易。当你编辑组件的代码或它的故事时,Storybook 会在浏览器中立即重新渲染。无需手动刷新。

创建新故事

如果你正在处理一个还没有任何故事的组件,你可以在侧边栏中点击 ➕ 按钮来搜索你的组件,并为你创建一个基本故事。

你也可以为你的新故事创建一个故事文件。我们建议你将现有的故事文件复制粘贴到组件源文件旁边,然后根据你的组件调整它。

如果你正在处理一个已经包含其他故事的组件,你可以使用 Controls 插件 来调整控件的值,然后将这些更改保存为一个新故事。

或者,如果你愿意,你可以直接编辑故事文件的代码,为你的故事添加一个新的命名导出。

编辑故事

使用 Controls 插件 来更新故事中控件的值。然后你可以将这些更改保存到故事中,故事文件代码就会为你更新。

当然,你也可以直接更新故事的代码。

故事也有助于你在进行更改时检查 UI 是否仍然看起来正确。 Button 组件有四个故事,展示了它在不同用例中的情况。现在查看这些故事,确认你对 Primary 的更改是否在其他故事中引入了非故意的错误。

在开发过程中检查组件的故事有助于防止意外回归。 与 Storybook 集成的工具可以为你自动执行此操作

现在我们已经了解了故事的基本结构,让我们看看如何使用 Storybook 的 UI 来开发故事。