返回博客

Storybook 4.1:对速度的需求

高达 300% 的速度提升、兼容性、便利性

loading
Michael Shilman
@mshilman
最后更新

Storybook是全球首选的UI组件工作坊,深受Airbnb、Github、Slack和Lyft等工程团队的信赖。在盛大的Storybook 4.0发布之后,我们很高兴地发布Storybook 4.1。本次更新,我们正在提升

  • ⚡️ 性能:全新架构,启动速度提升高达300%
  • 🔌 兼容性:支持任意版本的React 15.x+,完全兼容CRA
  • 🔀 便捷性:新增插件,可动态更新CSS资源

⚡️ 性能架构

Storybook 4.1引入了由Norbert de Langen带来的关键改进,使得Storybook在冷启动和重新加载时速度提升高达300%

4.1将预览(用户代码)和管理器(storybook代码)拆分为两个独立的进程,这提高了性能和React版本兼容性。

性能提升得益于架构更新,将Storybook的预览和管理器拆分为两个独立的进程。

  1. 🖼 预览是显示您的故事的区域。
  2. 🛠 管理器是用于在故事之间导航、管理插件等功能的外部UI。

这是一项基础性改进,意味着我们可以修复管理器中运行的React版本,并使用Webpack DLL插件“预编译”管理器UI的大部分内容。这在4.1版本中实现了惊人的性能提升,并为未来的优化打开了大门。

🔌 React 15.x+ 支持

预览/管理器分离的第二个好处是能够运行React 15+的Storybook,这对于我们的React用户来说是个好消息,他们每个月总共下载@storybook/react超过300万次。

Storybook 4.0发布依赖于React 16.3+的“react context”。这意味着如果您停留在旧版本的React上,您也只能使用Storybook 3.x。

现在Storybook的管理器和预览运行在不同的进程中,管理器可以依赖于它需要的任何React版本,而预览(运行用户的组件)可以使用不同的React版本。

Storybook可以走在技术前沿,而不会破坏那些停留在旧版本的应用程序。

🔌 create-react-app

现在在Storybook 4.1中,得益于Igor DavydkinBrody McKeeChad Fawcett的工作,您可以无需任何自定义配置,就能使用create-react-app的所有功能,包括TypeScript支持。

这项工作源于网络传奇人物Dan AbramovBrad Frost之间一次激烈的推特交流。

从不回避挑战的Igor很快就解决了这个问题,一次性使Storybook实现了开箱即用的兼容性和未来兼容性。

这才是真正的客户服务!

🔀 动态CSS

最后,Storybook 4.1包含了由Neville Mehta开发的全新CSS Resources插件。现在您可以轻松地在运行时切换不同的CSS版本,这对于主题化或仅仅是探索备选组件样式非常有用。

有关如何使用CSS Resources插件的更多信息,请参阅项目README


升级到Storybook 4.1

如果您正在运行Storybook 4.0,升级到4.1应该很容易。如果您使用的是3.x版本,我们有一个4.0升级指南可以帮助您。

如果您是Storybook的新用户,请查看Storybook教程,其中包含React/Angular/Vue的分步指南。或者直接在您自己的项目中使用。

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

参与进来

有任何问题或赞赏?请在TwitterDiscordGithubSlack或下方评论区与我们联系。请👏点赞此文并分享,以帮助更多人发现它。

感谢社区

Storybook是由超过550位社区贡献者的产品,并由顶级维护者组成的指导委员会发布。感谢Open Collective的慷慨捐赠。Storybook 4.1的代码贡献者包括:@454de6e @adamraider @alex-fournier @atekon @bartwaardenburg @bertho-zero @cfleschhut @chadfawcett @chilicoder @chris-lock @cosmith @cyruszei @dandean @dumbnickname @elucaswork @emilio-martinez @eps1lon @ewolfe @gabrielcsapo @gaetanmaisse @geoffreyd @gongreg @hipstersmoothie @hmelenok @hypnosphi @igor-dv @inversion @jamiemason @jfgreffier @jrwebdev @keraito @kroeder @kwm14 @lflpowell @libetl @lucianbuzzo @mansoorbashabellary @mark-schaal @miquelmasrieramrf @mohamedmansour @motleydev @mrmckeb @myoxocephalus @ndelangen @niku @nm123github @noriste @okamuuu @pksunkara @plrthink @quetzaluz @ranyitz @ravikishorethella @robincsl @shaminmeerankutty @shilman @snyk-bot @spawnia @stephanemw @stevehanson @tarikhamilton @tobiasljungstrom @transitive-bullshit @wuweiweiwu @ximenean @xogeny @y-nk

加入 Storybook 邮件列表

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

7,468开发者及更多

我们正在招聘!

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

查看职位

热门帖子

Storybook 5.0

欢迎来到组件开发的未来!
loading
Michael Shilman

Storybook 5 迁移指南

轻松实现美观的全新开发体验
loading
Michael Shilman

Storybook 治理

支持开源
loading
Michael Shilman
加入社区
7,468开发者及更多
原因为什么选择 Storybook组件驱动的 UI
文档指南教程更新日志遥测
社区插件参与进来博客
展示探索项目组件词汇表
开源软件
Storybook - Storybook 中文

特别感谢 Netlify CircleCI