返回博客

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:主题化
  • ⚙️ 核心:故事参数

我们的目标是帮助每位开发者构建坚如磐石的 UI 组件。无论使用何种框架或技术栈。今天,我们朝着这个目标又迈进了一步。

请继续阅读,了解 SB4 将如何全面提升您的组件开发体验。


Storybook 支持六个新的视图层

我们非常高兴地向 Storybook 的 UI 组件工具和最佳实践生态系统引入六个新的视图层

Storybook 及其插件是视图层无关的。这意味着每次有人添加功能或修复错误,所有用户都会受益,无论他们选择哪个框架。

例如,Angular 版 Storybook 显著改进了 Typescript 支持。React Native 的改进将使下一代 Web UI 受益。新的视图层对每个人都有好处。


使用 Webpack4 和 Babel7 更快地构建

感谢 Filipp Riabchun,Storybook 4 通过升级到 Webpack 4Babel 7 获得了显著的性能提升。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 设备视图

React Native 版 Storybook 在 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 移动视图

感谢 Denzenin,Storybook 4 包含一个专用的移动视图。

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

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


故事参数 API

感谢 Tom Coleman 的新参数 API,用户和插件作者现在可以使用标准格式来配置故事。

例如,无需为每个故事使用笨拙的 withNotes 装饰器

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

您可以在添加故事时传递额外的参数来注释故事

// .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 插件 都已转换为使用故事参数。有关新 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 上突破了 3 万颗星,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 邮件列表

获取最新消息、更新和版本发布

6,730位开发者以及更多

我们正在招聘!

加入 Storybook 和 Chromatic 背后的团队。构建被成千上万开发者在生产环境中使用的工具。远程优先。

查看职位

热门文章

Storybook 4 迁移指南

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

Storybook 治理

支持开源
loading
Michael Shilman

为什么我将全职致力于 Storybook

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

特别感谢 Netlify CircleCI