Story 介绍
Story(故事)捕获 UI 组件的呈现状态。 开发人员为每个组件编写多个故事,描述组件可以支持的所有“有趣”状态。
每个组件都有一组故事,显示它支持的状态。
可以在 UI 中浏览故事,并在以 .stories.js 或 .stories.ts 结尾的文件中查看故事背后的代码。
这些故事以组件故事格式 (CSF) 编写,这是一种基于 ES6 模块的标准,用于编写组件示例。
从 Button 组件开始。 故事是描述如何呈现相关组件的函数。 以下是如何在 Primary
状态下渲染 Button 并导出一个名为 Primary 的故事。
|
|
编写文档(可选)
<!-- Button.stories.mdx -->
import { Meta, Story } from '@storybook/addon-docs';
import { Button } from './Button';
<Meta title="Button" component={Button} />
# Button
<Story name="Primary">
<Button primary>Button</Button>
</Story>
通过在 Storybook 侧栏中单击它来查看呈现的 Button。
args
可以进一步改进上述故事定义以利用 Storybook 的 args
概念。 Args 以机器可读的方式描述 Button 的参数。
它释放了 Storybook 动态改变和撰写论点的超能力。
|
|
编写文档(可选)
<!-- Button.stories.mdx-->
import { Meta, Story } from '@storybook/addon-docs';
import { Button } from './Button';
<Meta title="Button" component={Button} />
<!-- 👇 我们创建了 args 如何映射到渲染的 template(模板) -->
export const Template = (args) => <Button {...args} />;
<!-- 👇 每个故事重用该模板 -->
<Story
name="Primary"
args={{
primary: true,
label: 'Button',
}}>
{Template.bind({})}
</Story>
两个故事示例渲染相同的内容,因为 Storybook 在渲染期间将给定的 args 属性提供给故事。
可以通过 args 获得省时的便利:
-
按钮回调记录到
Action
选项卡中。 单击以尝试它 -
按钮参数可在
Controls
选项卡中动态编辑。 调整控件
编辑故事
Storybook 可以轻松地一次处理一种状态(又名故事)中的一个组件。
当编辑 Button 代码或故事时,Storybook 将立即在浏览器中重新呈现。 无需手动刷新。
更新主要故事的标签,然后在 Storybook 中查看更改。
故事还有助于检查 UI 在更改时是否继续保持正确。
Button 组件有四个故事,在不同的用例中展示它。
现在查看这些故事,以确认对主要的更改没有在其他故事中引入无意的错误。
在开发时检查组件的故事有助于防止意外回归。 与 Storybook 集成的工具也可以自动化。
现在已经了解了故事的基本结构,让我们看看如何使用 Storybook 的 UI 来开发故事。
知识点
-
args
-
Action
-
Controls