
Storybook入门
coding二月 05, 20211mins
Frontend Storybook
StoriesH2
Storybook支持通过JS/TS、MDX来书写Story
jsx
// Button.stories.jsimport React from 'react';import { Button } from './Button';export const Primary = () => <Button primary>Button</Button>;
jsx
<!-- Button.stories.mdx-->import { Meta, Story } from '@storybook/addon-docs/blocks';import { Button } from './Button';<Meta title="Button" /># Button<Story name="Primary"><Button primary>Button</Button></Story>
ArgTypesH3
Storybook通过ArgTypes来生成页面的Controls。
Storybook会通过react-docgen 、vue-docgen-api 等自动推导出ArgTypes:Meta 定义中的component 定义的组件的Props信息(propType或者Typescript信息)
也可以进行自定义
jsx
export default {title: 'Example/Button',component: Button,argTypes: {backgroundColor: { control: 'color' },},} as Meta;
ArgsH3
组件传入不同的props,形成Stories。通过args可以快速的创建Stoires
jsx
// Button.stories.jsimport React from 'react';const Template = (args) => <Button {...args} />;// Each story then reuses that templateexport const Primary = Template.bind({});Primary.args = {primary: true,label: 'Primary',};
Component Story Format (CSF)H3
使用JS来写时,推荐使用MDX风格的Component Story Format (CSF),它基于ES6模块,和MDX互通性更好。
jsx
// Checkbox.stories.jsimport { Checkbox } from './Checkbox';export default {title: "MDX/Checkbox",component: Checkbox};const Template = (args) => <Checkbox {...args} />export const Unchecked = Template.bind({});Unchecked.args = { label: 'Unchecked' };
文档H2
使用CSF格式书写Story时,DocsPage能够自动生成响应的文档。
反过来使用MDX书写文档时,可以自动生成Stories。
AddonsH1
@storybook/addon-essentialsH2
包括
配置
java
// .storybook/main.jsmodule.exports = {addons: [{name: '@storybook/addon-essentials',options: {backgrounds: false,}}]};
评论
新的评论
上一篇
Sonarqube Coverage
Coverage Report 对于Java项目使用Jacoco 对于Javascript项目使用Jest Sonarqube覆盖率有时候会把测试文件本身也算进去,这些文件在覆盖报告中是没有的,会导致Sonarqube服务器认为这些文件的覆盖率是 0% 设置忽略这些文件 Jes…
下一篇
storybook pragma and pragmaFrag cannot be set
使用Storybook来渲染Theme UI组件时,报错 React 17支持新的JSX转换, 但是转换本身需要Babel 的 v7.9.0 及以上版本 使用了 "runtime": "automatic" ,在emotion中就不能再以这种方式写了 Storybook使用的B…
