前端工具Storybook简介

2024-04-09 10:38

本文主要是介绍前端工具Storybook简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

认识Storybook

Storybook (https://storybook.js.org/) 是一个很不错的开源工具,用于帮助前端组件开发,可以支持React, Vue和Angular等框架。
正如它的名字所预示的一样,使用它可以写出组件库的活的用户故事(user story)。
它的网站首页这样说道:storybook 为UI组件提供一个独立的沙箱环境,在这里无论是edge case还是难于遇到的状态都可以造出来。可以把use case 像故事一样展现出来。
想象一下过去我们如果希望单独测试一个组件的行为和表现该怎么做?我不知道各位大佬如何,反正我就老老实实地写个页面(甚至专门建个测试用的project)把组件扔进去,再启动测试服务器,打开浏览器和调试窗口…
有了Storybook, 终于可以鸟枪换炮了,而且这些story不是写写测试一下就没有用了,它们不仅可以供以后测试用比如UT,也可以用于生成文档。这样的话原来老土的手工活在工具话流程化后突然变得高大上了…
在这里插入图片描述
storybook 的界面如上图所示,左面边栏是story 列表,右面主要部分就是要展示的目标组件。右下的面板可以做一些控制比如改变状态。

如何写Story

文件扩展名

Story文件需要以.stories.js结尾,它并不会被编译到最终打包的程序中。

组件故事格式

Storybook 官网文档给出了一个专用的“组件故事格式”(CSF)用来写Story。
基本要求大概有以下几点:

  1. 默认的export的对象是指定的meta data, 包括标题(其实是故事路径),组件,装饰起和参数
  2. 有名字的export对象会被当成一个story function, 系统会自动把驼峰表示法的名字拆成空格分隔的名字。
  3. Story function 的参数会被作为args输入
  4. Storybook 其实也支持直接指定story 的名字,比如xxx.storyName = “xxxx”
  5. 在meta data 里面可以指定includeStories 和excludeStories,并支持正则表达式,这样我们就可以export 不是story function的对象了。

Story的参数

我们可以在metadata 里面定义一些参数(parameters)这样可以提供一些配置上的灵活性。官方文档给出的例子是背景颜色的。注意这些参数是和一定的插件(addons)一起工作的。

export default {title: 'Button',component: Button,//👇 Creates specific parameters for the storyparameters: {backgrounds: {values: [{ name: 'red', value: '#f00' },{ name: 'green', value: '#0f0' },{ name: 'blue', value: '#00f' },],},},
};

然后界面上就会出现三种可选的背景色

装饰器

装饰器(decorators)有点像装饰模式,就是说在渲染组件时用装饰器把组件包起来。

多个组件的故事

有时候我们会设计一些需要一起使用的组件,Storybook 也支持把它们放在一起写story。

这篇关于前端工具Storybook简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结