WHAT - 组件库与 Storybook

请添加图片描述

文章目录

  • 什么是 Storybook?
  • 使用场景举例
  • 快速上手教程(React 为例)
    • 1. 安装 Storybook
    • 2. 创建一个 Story(组件故事)
    • 3. 启动 Storybook
  • 常用功能
  • 常见生态扩展
  • 示例:用 Args 和 Controls 动态控制 Props
  • 推荐资料

什么是 Storybook?

Storybook 是一个用于构建独立组件 UI 的开发环境工具,适合 React、Vue、Angular 等现代前端框架。它允许你在不依赖项目业务的情况下,独立开发、测试和文档化 UI 组件

官方文档:https://storybook.js.org/

请添加图片描述


使用场景举例

  • 创建和预览组件库(如按钮、表单等)
  • 查看组件的不同状态(如加载、禁用、成功)
  • 为设计师、QA 或产品经理提供组件预览
  • 写交互测试、可视化调试 UI 状态

快速上手教程(React 为例)

1. 安装 Storybook

在你的 React 项目中运行:

npx storybook@latest init

它会自动识别框架,安装依赖,并创建 .storybook 配置目录和示例 stories。


2. 创建一个 Story(组件故事)

假设你有一个 Button.tsx 组件,可以这样写 story:

// src/components/Button.tsx
import React from 'react';export const Button = ({ children, type = 'default', ...rest }) => (<button className={`btn btn-${type}`} {...rest}>{children}</button>
);
// src/components/Button.stories.tsx
import { Button } from './Button';export default {title: 'Components/Button',component: Button,
};export const Default = () => <Button>Default</Button>;
export const Primary = () => <Button type="primary">Primary</Button>;
export const Disabled = () => <Button disabled>Disabled</Button>;

3. 启动 Storybook

npm run storybook

默认会在 http://localhost:6006 启动一个独立页面,展示你定义的所有组件。


常用功能

功能说明
args控制组件的属性(Props)
controls自动生成 UI 控件修改 props
docs自动生成组件文档
actions捕捉事件(onClick 等)
storybook/addon-interactions编写交互测试
mdx 支持写 Markdown + JSX 格式文档

常见生态扩展

  • @storybook/addon-essentials(推荐插件集合)
  • @storybook/addon-a11y(无障碍辅助)
  • storybook-addon-designs(Figma/Zeplin 设计稿预览)
  • storybook-addon-themes(多主题切换)

示例:用 Args 和 Controls 动态控制 Props

export const Playground = (args) => <Button {...args} />;
Playground.args = {children: 'Click me',type: 'primary',disabled: false,
};

这会生成 UI 控件让你在页面中动态调整按钮的 props。


推荐资料

  • 官网:https://storybook.js.org/
  • 官方文档:https://storybook.js.org/docs/react/get-started/introduction
  • UI 测试集成(如 Playwright / Testing Library):官方有丰富支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86254.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

魔音音乐 5.0.2 | 无损下载 同步网易云歌单UI美观

魔音音乐是一款功能丰富的音乐播放软件&#xff0c;提供高保真音质、智能推荐系统和用户友好界面。其丰富的音乐库几乎覆盖了所有类型的音乐&#xff0c;无论是流行歌曲还是小众音乐&#xff0c;都能在这里找到。这款应用非常适合音乐爱好者使用&#xff0c;它不仅让你享受高品…

云原生时代的中国答案:OLARDB、OceanBase与PostgreSQL的共生革命

以下是对阿里自研数据库的全景式技术调查,重点梳理其产品体系、与PostgreSQL的技术关联及发展历程: 一、阿里自研数据库全景图谱 ​​1. 核心自研产品​​ ​​数据库名称​​​​类型​​​​技术定位​​​​与PostgreSQL关系​​​​PolarDB​​云原生分布式数据库存储计…

HTTP 请求方法与状态码

前言&#xff1a;构建可靠前端应用的 HTTP 通信基础 在当今复杂的 Web 应用生态中&#xff0c;前端开发已远超简单的页面构建&#xff0c;转而成为与后端系统紧密交互的复杂体系。作为这一交互的核心机制&#xff0c;HTTP 协议承载着几乎所有的前后端数据交换&#xff0c;其设…

WIFI原因造成ESP8266不断重启的解决办法

一、报错 报错信息如下&#xff1a; 21:37:21.799 -> ets Jan 8 2013,rst cause:2, boot mode:(3,7) 21:37:21.799 -> 21:37:21.799 -> load 0x4010f000, len 3424, room 16 21:37:21.799 -> tail 0 21:37:21.799 -> chksum 0x2e 21:37:21.799 -> loa…

13.5-13.8. 计算机视觉【2】

文章目录 13.5. 多尺度目标检测13.5.1. 多尺度锚框13.5.2. 多尺度检测13.5.3. 小结 13.6. 目标检测数据集13.6.2. 读取数据集13.6.3. 演示 13.7. 单发多框检测&#xff08;SSD&#xff09;13.7.1. 模型13.7.1.1. 类别预测层13.7.1.2. 边界框预测层13.7.1.3. 连结多尺度的预测13…

RSS解析并转换为JSON的API集成指南

RSS解析并转换为JSON的API集成指南 引言 随着互联网的发展&#xff0c;信息的传播和共享变得越来越重要。RSS&#xff08;简易信息聚合&#xff09;作为一种广泛采用的格式&#xff0c;用于发布经常更新的内容&#xff0c;如博客文章、新闻头条或播客等。它允许用户订阅这些内…

java数据类型详解篇

1、8种基本数据类型 数据类型分类字节数内存位数是否最高位为符号位&#xff08;0正数1负数&#xff09;取值范围&#xff08;数值形式&#xff09;取值说明byte整数类型18是-128 ~ 127-2^7 ~ 2^7 - 1 &#xff08;幂形式&#xff09;short整数类型216是-32,768 ~ 32,767-2^15…

vue 浏览器样式警告:“unknown property name“

浏览器样式警告&#xff1a;"unknown property name"&#xff0c;但在部分电脑上的浏览器又是没有问题的。 这个问题因为没有安装sass或者less&#xff0c;却直接使用了他的语法&#xff0c;比如嵌套样式&#xff1a; body {/* 按钮 */.el-button {background: lin…

postgresql DDL脚本

在PostgreSQL中&#xff0c;数据定义语言&#xff08;DDL&#xff09;脚本用于定义、修改或删除数据库的结构。DDL 操作包括创建表、修改表结构、删除表等。以下是几种常见的DDL操作示例以及如何在脚本中实现它们。 1. 创建表 CREATE TABLE employees (employee_id SERIAL PR…

C#语言入门-task3 :C# 语言的面向对象技术

C# 面向对象编程技术概述 C# 是一种现代化的面向对象编程语言&#xff0c;提供了丰富的特性来支持面向对象的编程范式。以下是 C# 中面向对象编程的核心概念和技术&#xff1a; 核心概念 1. 类与对象 类是对象的蓝图&#xff0c;定义了对象的属性和行为。对象是类的实例。 …

感知框2D反投是咋回事?

一、感知框&#xff1a;“2D 框反投” 是咋回事&#xff1f;&#xff08;以自动驾驶识别车辆为例&#xff09; 1. 核心逻辑&#xff1a;从图像特征 “反推” 目标框 简单说&#xff0c;先用算法在 2D 图像里识别特征&#xff08;比如车辆的轮廓、颜色、纹理&#xff09;&#…

五分钟了解@ExcelIgnoreUnannotated注解

ExcelIgnoreUnannotated 是 EasyExcel 框架中的一个注解&#xff0c;用于控制 Excel 导入/导出时对实体类字段的处理方式。它的作用如下&#xff1a; 核心功能 忽略未标注 ExcelProperty 的字段 当添加 ExcelIgnoreUnannotated 到类上时&#xff0c;EasyExcel 会 跳过所有未显…

Windows电脑数据恢复终极指南:从原理到实战

Windows电脑数据恢复终极指南&#xff1a;从原理到实战 数据丢失是每个电脑用户都可能遭遇的噩梦。本文将为您全面解析Windows平台下的数据恢复技术&#xff0c;从基础原理到高级技巧&#xff0c;帮助您在文件误删、格式化、系统崩溃等情况下找回宝贵数据。 一、数据恢复基础…

【网络入侵检测】基于Suricata源码分析应用协议识别实现

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全&#xff0c;欢迎关注与评论。 1. 概要 &#x1f44b; 本文聚焦Suricata网络安全引擎的协议解析器实现&#xff0c;详细剖析HTTP、SSL/TLS、FTP、SSH、SMTP等协议的解析流程。 2. 源码分析 2.1 H…

Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡

Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡 引言&#xff1a;SSL/TLS的重要性与Nginx配置挑战 在当今互联网环境中&#xff0c;SSL/TLS加密已成为网站安全的基本要求。根据Google透明度报告显示&#xff0c;截至2023年&#xff0c;全球Chrome浏览器加载的网页…

C++字符串的行输入

1、字符串的输入 下面用一个真实的示例来进行演示&#xff1a; #include<iostream> #include<string>int main() {using namespace std;const int ArSize 20;char name[ArSize];char dessert[ArSize];cout << "Enter your name:\n";cin >>…

征服分布式系统:阿里云 Linux 多机互联与资源共享实战指南

征服分布式系统&#xff1a;阿里云 Linux 多机互联与资源共享实战指南 文章目录 征服分布式系统&#xff1a;阿里云 Linux 多机互联与资源共享实战指南一、分布式系统架构概述二、阿里云网络基础架构解析三、多机互联基础配置1. 环境准备2. 网络连通性测试3. SSH 密钥认证配置 …

AI三步诊断心理:比ChatGPT更懂人心

用人工智能(大语言模型)辅助心理治疗的研究 解决心理治疗中专业人员不足的问题,提出了一种叫“思维诊断”(DoT)的方法,让AI通过三个步骤来识别患者的“认知扭曲”(也就是负面、不合理的思维模式)。 背景:心理治疗的困境 全世界约八分之一的人有心理问题,但心理咨询师…

C++【生存游戏】开发:荒岛往事 第一期

字幕君已上线...... 副字幕君已上线...... 计数君已上线...... 彩色字幕君 ( 花了重金请来的 ) 已上线...... Doge智能系统已上线...... Doge:嗨嗨我又来了&#xff01; 观众们......已上线&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; OK LETS GO&am…

k8s强制删除podpvpvc和nsnamespace

k8s如何强制删除pod&pv&pvc和ns&namespace方法 namespace、pod、pv、pvc全部处于“Terminating”状态时&#xff0c;此时的该名称空间下的所有控制器都已经被删除了&#xff0c;之所以出现pod、pvc、pv、ns无法删除&#xff0c;那是因为kubelet 阻塞&#xff0c;有…