返回博客

Storybook 4.0 现已发布!

重大更新,支持新的构建工具和框架

loading
Michael Shilman
@mshilman
最后更新

欢迎来到最新版的 Storybook,这是世界上最受欢迎的 UI 组件开发工具。

Storybook 改进了 React/React Native/Vue/Angular 等框架的组件开发、测试和文档。它被 Airbnb、Slack、Squarespace 和 Lyft 等工程巨头使用。

Storybook 4.0 (SB4) 支持六种新的视图层,并在各个层面都进行了改进

  • 🖼 视图层:Ember、MarkoJS、Mithril、HTML、Svelte、Riot
  • 🛠 构建:Webpack 4、Babel 7
  • 📱 移动端:React Native、移动设备视图
  • 🎨 UI:主题
  • ⚙️ 核心:Story 参数

我们的目标是帮助每一位开发者构建稳健的 UI 组件。无论使用何种框架或技术栈。今天,我们离这个目标又近了一步。

请继续阅读,了解 SB4 将如何为您的组件开发体验带来飞跃。


Storybook 支持六种新的视图层

我们很高兴为 Storybook 的 UI 组件工具和最佳实践生态系统引入六种新的视图层

Storybook 及其插件与视图层无关。这意味着每次有人添加功能或修复 bug 时,所有用户(无论使用何种框架)都能受益。

例如,Storybook for Angular 大幅改进了 Typescript 支持。React Native 的改进将惠及下一代 Web UI。新的视图层对每个人都有益。


Webpack4 和 Babel7 构建速度更快

Storybook 4 借助对 Webpack 4Babel 7 的升级,获得了显著的性能提升,这要归功于 Filipp Riabchun。Storybook 现在与流行的前端工具兼容,例如 create-react-app 2Gatsby 2Next 7

Webpack 4 和 Babel 7 还包含了数百项其他改进,包括 Webpack 4 中的 WebAssembly 支持;Babel 7 中的 JS 配置、Typescript、JSX 片段。

如果您正在从旧版本升级,我们的 Storybook 4.0 迁移指南 将一步一步地指导您完成。

“太好了,迁移完成了,一切正常!我还注意到这次升级带来了惊人的性能提升,请告诉大家,这太棒了!” — Josh Callendar, Lyft

React Native 的一流支持

⚛️ React Native 的新设备视图

Storybook for React Native 在 4.0 版本中也得到了全面的改进。

现在,将 Storybook 分发到团队的移动设备上变得非常简单。它提供了在无需连接 Storybook 服务器的情况下将 Storybook 作为应用程序运行所需的一切。

对 `@storybook/react-native` 的新更新改进了它与您的应用程序的集成方式。此外,Storybook 现在为 knobs、notes 和 backgrounds 等流行插件提供了设备内 UI。

Gytis Vinclovas 主导了 Storybook 4.0 的 React Native 工作。他在 他的文章中详细介绍了这些变化


根据您的喜好主题化 Storybook

Storybook 的暗黑模式,在 4.0 版本中可用

开发人员现在可以精确控制 Storybook 的外观。 Norbert de Langen 引入了主题功能,允许您调整样式以匹配您的品牌。

Storybook 4.0 包含“暗黑”主题以展示其可能性。有关主题设置说明,请 查阅文档


更轻松地开发移动 Web 应用

Storybook 移动视图

Storybook 4 在 Denzenin 的贡献下,包含了一个专用的移动视图。

当检测到移动设备的用户代理时,Storybook 会在三个独立的选项卡中显示其故事目录、主组件预览和插件面板。

在手机上浏览我们的 官方 Storybook 示例,或在 Web 浏览器开发者工具中设置移动用户代理并刷新页面,即可查看演示。


Story 参数 API

Tom Coleman 的新参数 API 的支持下,用户和插件作者现在有了一个标准的格式来配置 Story。

例如,与其为每个 Story 使用笨拙的 withNotes 装饰器

storiesOf('My component', module)
  .add('story1', withNotes('some notes')(() => <Component ... />))
  .add('story2', withNotes('other notes')(() => <Component .../>))

您可以在添加 Story 时通过传递一个附加参数来注释 Story

// .storyook/config.js (global decorator, local also supported)
addDecorator(withNotes)

// Component.stories.js
storiesOf('My component', module)
  .add('story1', () => <Component />, { notes: 'some notes' })
  .add('story2', () => <Component />, { notes: 'other notes' })

所有官方 Storybook 插件 都已转换为使用 Story 参数。有关新 API 如何工作的更多信息,请 参阅文档

升级到 Storybook 4.0

立即升级到 Storybook 4.0 — 只需一分钟。

如果您是 Storybook 的新手,现在是开始的最佳时机。Storybook 支持最流行的视图层和前端技术,帮助您创建耐用的 UI 组件。请查看 Storybook 教程,了解 React/Angular/Vue 的分步指南。或者,如果您想直接开始

cd my-project
npx -p @storybook/cli sb init
yarn storybook

参与进来

有任何疑问或赞美?在 TwitterDiscordGithubSlack 或下面的评论中与我们联系。请👏 鼓掌这篇文章并分享,帮助更多人发现它。


感谢社区和赞助商
Storybook 仍然是世界上最受欢迎的 UI 组件浏览器。我们最近在 Github 上获得了 30k 颗星,在 NPM 上每月下载量达到 400 万次,贡献者超过 500 名。

Storybook 的 Open Collective 正在蓬勃发展。它每月获得来自 FacebookChromaticXebiaPercyTipeApplitools 的赞助。 AlgoliaAirbnbJosé Manual Lucas Muñoz 最近进行了大量的单次捐赠。社区中许多宝贵的捐助者也站出来帮助该项目。这些贡献用于托管、为贡献者提供周边产品、文档和推广。

— 来自 Storybook 团队的爱

谢谢! @a-tokyo @adekbadek @ailrun @alanhogan @andyo729 @astrotim @bastienfp @bmson @br0ken- @brian-mcbride @brycemhammond @camel-floss @choznerol @clehnert-psl @cliedeman @connorholyday @cortopy @danielduan @denzenin @desfero @dimitrijemanic @dioxmio @do7be @domyen @donaldpipowitch @edward1224 @ekhaled @elob @ewolfe @expe-lbenychou @faun @fibo @fran-worley @fvilers @gabrielcsapo @georgewl @glazy @gongreg @grimones @gromchen @hisapy @hypnosphi @ianvs @igor-dv @ikesyo @isoppp @j-kallunki @jalilarfaoui @jamesgorrie @jayphelps @jbaumgardt @jfsiii @jh3y @jhswart @jmiazga @jondot @juhq @keraito @klimentru1986 @kroeder @kumarharsh @langri-sha @libetl @ljharb @lucidpaper @luisdanielroviracontreras @lvarayut @manuel-magnetix @markelog @marob @marshallmick007 @martinmacko47 @meesvandongen @michaelduminy @mizx @mnicole @mrmckeb @mshaaban088 @mvasin @ndelangen @nemodreamer @nm123github @noriste @paradoxxxzero @pascalduez @pelotom @phillduffy @pksunkara @plsr @plumpnation @primigenus @rantelo @rhalff @rwieruch @sanpochew @shilman @silencerweb @sky-franciscogoncalves @skywhale @stephanemw @stijnkoopal @swernerx @swese44 @thekashey @thomasbertet @timothymclane @titonobre @tkh44 @tmeasday @tobilen @tombyrer @tretuna @tsiq-swyx @unional @urikphytech @vertexbz @vidaaudrey @wearymonkey @web-devel @westandy-dcp @wuweiweiwu @yaodingyd @yi-ge @yogu @zgreen

加入 Storybook 邮件列表

获取最新消息、更新和发布信息

7,468开发者及更多

我们正在招聘!

加入 Storybook 和 Chromatic 团队。构建被数十万开发人员在生产中使用的工具。远程优先。

查看职位

热门帖子

Storybook 4 迁移指南

迈向下一代 UI 开发的三步法
loading
Michael Shilman

Storybook 治理

支持开源
loading
Michael Shilman

我为什么将全职投入Storybook

Storybook光明而令人兴奋的未来
loading
Norbert de Langen
加入社区
7,468开发者及更多
原因为什么选择 Storybook组件驱动的 UI
文档指南教程更新日志遥测
社区插件参与进来博客
展示探索项目组件词汇表
开源软件
Storybook - Storybook 中文

特别感谢 Netlify CircleCI