storybook生态初体验

2023-10-10 00:40
文章标签 初体验 生态 storybook

本文主要是介绍storybook生态初体验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

上一篇文章简单介绍了一下storybook,这一篇用个实例来做一下。

生态

首先因为是配合React和CRA使用,所以需要一下几个插件:

@storybook/addon-info
@types/storybook__addon-info
react-docgen-typescript-loader

第一款是为了展示源代码等信息用的,第二款是类型文件,第三个是一款webpack插件,主要解决的是addon-info和react-docgen在ts环境下的使用问题。

使用

首先,我们创建一个stories.tsx文件:

import {storiesOf} from "@storybook/react";
import Button, {ButtonSize, ButtonType} from "./button";
import React from 'react'
import {action} from '@storybook/addon-actions'const defaultButton = () => <Button onClick={action('默认按钮')}>默认按钮</Button>
storiesOf('按钮组件(Button)', module).add('默认Button',defaultButton)

这样展示的效果就是一个简单的按钮。

当然为了更好的生成文档,我们还需要更多。

addon-info

addon开头,在storybook中以插件的形式存在,这款插件也是目前比较火热的,主要作用,生成这两块内容:
在这里插入图片描述

注意,一般来说为了配套说明文档,我们这里直接使用展开形式的addon-info,并在.storybook文件夹下创建一个config.tsx文件。

import { withInfo } from '@storybook/addon-info'
import { addDecorator, addParameters } from '@storybook/react';
...
addDecorator(withInfo)
addParameters({info: { inline: true, header: false}})

上述配置首先引入了addon-info,其次配置其默认是展开的,同时为了美观把header设置为false。

如果觉得样式不好看,这里还可以添加一个wrapper设置样式:

const wrapperStyle: React.CSSProperties = {padding: '20px 40px 0 40px'
}const storyWrapper = (stroyFn: any) => (<div style={wrapperStyle}><h3>组件演示</h3>{stroyFn()}</div>
)
...
addDecorator(storyWrapper)

但是即使这样做了,还可能从存在文档无法分析等问题,这是因为我们没有配置好react-docgen。

react-docgen

这是个很出名的写文档的CLI工具,只不过storybook内置了,让我们用起来很方便,在webpack.config.js(上文有写过)中加入如下配置:

      {loader: require.resolve("react-docgen-typescript-loader"),options: {shouldExtractLiteralValuesFromEnum: true,propFilter: (prop) => {if (prop.parent) {return !prop.parent.fileName.includes('node_modules')}return true}}
}

这样就可以拿到想要的字段,同时也会把enum一些类型解析出来,还是很方便的。

注释

关于怎么写storybook的注释,我们只需要代码编写接口时安装js-doc规范写一下即可:

interface BaseButtonProps {/** 设置class属性 */className ?: string,/** 设置按钮禁用 */disabled ?: boolean,/** 设置按钮尺寸 */size ?: ButtonSize,/** 设置按钮类型 */btnType ?: ButtonType,children ?: ReactNode,/** 设置链接按钮 */href ?: string
}

这样就会自动解析出来。

总结

关于storybook的用法还有很多,以上是最容易实现也是最常用的,大家还可以继续探索更多高级用法。

本文参考慕课网《React+TypeScript高仿AntDesign开发企业级UI组件库》,张老师讲的很好,强推。

这篇关于storybook生态初体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176718

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

Node.js入门与生态全解析:包管理与构建工具详解

Node.js入门与生态全解析:包管理与构建工具详解 目录 🎯 包管理 使用 npm 和 yarn:项目依赖管理的利器创建和发布 npm 包:实现模块化与共享 ⚙️ 构建工具 使用 Webpack 和 Babel:高效打包与代码转换配置构建流程:优化与自动化的最佳实践 🎯 包管理 - 使用 npm 和 yarn:项目依赖管理的利器 在Node.js的开发过程中,包管理是核心环节

Node.js初体验 Kali安装Node.js

背景:偶然看到node.js开发微信公众号的视频,有些好奇,想要接触下。然后花了两个小时在实验楼网站上在线学习了JavaScript的基础知识,以及Node.js的基础 接着本着从实践出发的原则 先去本地kali下安装个Node.js玩玩 下载地址:https://nodejs.org/en/download/ 网页最下面有提示:Note: Python 2.6 or 2.7 is requ

联众优车持续加大汽车金融服务投入与创新,赋能汽车消费新生态

近年来,中国汽车消费市场呈现出蓬勃发展的态势,而汽车金融服务作为降低购车门槛、优化购车体验的重要手段,正日益受到市场的青睐。《2023中国汽车消费趋势调查报告》显示,相较于前一年,今年选择汽车金融服务的市场消费者占比显著提升,其中潜在购车者占比高达67.8%,再购用户及现有用户占比也分别达到59.9%和49.4%。在这一背景下,作为汽车综合服务市场的领军企业,联众优车持续加大在汽车金融服务领域的投

拼多多为何主动“慢”下来进行商家生态治理?

十几天前的财报电话会上,拼多多管理层向外界释放了两个关键信息: 一是将通过“扶持与治理”并举的方式,继续完善生态建设,未来一年将投入百亿资源包扶持新质商家,减免100亿商家交易手续费,并坚决地进行商家生态治理。目前,拼多多的“百亿减免计划”已经相继落地,先后推出多项服务费退免、下调店铺保证金、升级商家售后服务体系等。 二是对未来增长的理性预判,“拼多多的盈利曲线并非是线性的”、“过去几个季度的

龙蜥社区首推 AI 原生操作系统路线,三大重磅计划协同生态布局未来

近日,2024 龙蜥操作系统大会(OpenAnolis Conference)在北京圆满召开,此次大会由中国计算机学会开源发展委员会、中关村科学城委员会、海淀区委网信办、中国开源软件推进联盟指导,龙蜥社区主办,阿里云、浪潮信息、Intel、中兴通讯、Arm、中科方德等 24 家理事单位共同承办,主题为“进化·重构·赴未来”。北京市委网信办、海淀区委网信办等领导莅临指导,中国工程院院士、浙江大学信息

基于AI+多技术融合在流域生态系统服务评价、水文水生态分析、碳收支、气候变化影响、制图等领域中的实践应用

流域生态系统服务在环境保护与资源管理中具有不可替代的重要性。随着全球气候变化和人类活动对自然环境的压力日益增大,流域生态系统的稳定性和健康状况面临严峻挑战。水资源短缺、洪水频发、水质污染、生物多样性减少等问题,正在威胁流域内及其下游区域的人类社会福祉。因此,对流域生态系统服务的科学评估和有效管理不仅能够提升生态系统的抗逆性和恢复力,还能为区域可持续发展提供坚实的环境保障。通过GIS+技术进行的流域

紫光展锐完成Android 15同步升级,驱动技术创新与生态共赢

近日,紫光展锐宣布,展锐5G移动平台T820、T770、T765、T760、T750以及4G平台T620、T619、T616、T615、T612、T606,完成Android 15同步升级。相较于过往Android发布,今年同步升级Android 15主要有三大提升: ■ 紫光展锐实现与客户同步进行基线建设,为客户定制和实施了一套标准化安全配置和性能优化措施,包括全面

html初体验标准标签

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><input type="text"></body></html> 内容展示

构建全景式智慧文旅生态:EasyCVR视频汇聚平台与AR/VR技术的深度融合实践

在科技日新月异的今天,AR(增强现实)和VR(虚拟现实)技术正以前所未有的速度改变着我们的生活方式和工作模式。而EasyCVR视频汇聚平台,作为一款基于云-边-端一体化架构的视频融合+AI智能分析平台,可以通过其强大的数据接入、处理、转码及分发能力,与AR/VR技术形成完美结合,为多个领域带来了前所未有的创新应用。 在此背景下,增强现实(AR)和虚拟现实(VR)等前沿技术结合EasyCVR平台在