首页 > 其他分享 >为什么选择 2022 年的故事书?

为什么选择 2022 年的故事书?

时间:2022-09-02 01:01:27浏览次数:96  
标签:为什么 故事 故事书 应用程序 Storybook UI 2022 组件

为什么选择 2022 年的故事书?

故事书有什么大惊小怪的

世界各地的团队都使用 Storybook 来支持他们的前端工作流程。但是它的使用方式可能会有很大的不同。 Microsoft 记录了他们的 Fluent 设计系统。 Mozilla 为他们的 Web 应用程序单独开发页面。而 BBC 会自动为每个地区的读者进行测试。

Storybook 用例的广度使新手很难理解其核心价值。为什么开发者在 2022 年实际使用 Storybook?本文分解了 Storybook 背后的内容、方式和原因,以帮助您确定它是否适合您。

前端开发很简单……对吧?

在开始之前,让我们先澄清一下软件工程的最大误解:“前端很简单”。

响应式网页设计将每个用户界面从一个变成了 10、100、1000 个不同的用户界面——每个用户界面都有独特的约束。随着时间的推移,额外的 UI 要求越来越多,例如设备、浏览器、可访问性、性能和异步状态。这最终将更多的复杂性推向了前端。

React、Vue 和 Angular 等组件驱动工具有助于将复杂的 UI 分解为简单的组件,但它们并不是灵丹妙药。随着前端的增长,组件的数量也在增加。成熟的项目可以包含数百个组件,这些组件会产生数千个离散的变化。

更复杂的是,这些 UI 调试起来很痛苦,因为它们纠缠在业务逻辑、交互状态和应用程序上下文中。

将 UI 复杂性的爆炸视为 用户界面多元宇宙 ——一大堆离散的变化。这个多元宇宙的发展是一个令人费解的限制和陷阱的迷宫。那么你如何浏

如何在用户界面multiverse中开发

想象一张地图,它跟踪每个可能的 UI 变化到组件:移动购物车、暗模式下的网络加载、具有高对比度主题的主页。

过去,您必须启动应用程序、导航到页面并将 UI 扭曲到正确的状态。这是对时间的巨大浪费,并且会阻碍前端开发。

如果你有你的应用程序支持的每个 UI 状态的地图,你可以跳转到 UI 中的任何位置并像你的用户一样查看它。然后,您可以针对这些状态运行自动化测试以捕捉错误、静态分析它们,甚至生成 UI 文档。这就是发明“故事”的原因。

故事单独捕获 UI 状态

现在的每一块 UI 都是一个 零件 .组件的超能力在于,您无需启动整个应用程序即可查看它们的呈现方式。您可以通过传入道具、模拟数据或伪造事件来单独呈现特定的变体。

故事 是一种声明性语法,用于提供道具和模拟数据以模拟组件变化。它们是 Storybook 背后的核心结构。每个组件可以有多个故事。每个故事都允许您展示该组件的特定状态以验证外观和行为。

您为细粒度的 UI 组件状态编写故事,然后使用这些故事在开发、测试和文档编制期间验证外观。

故事书记录故事

Storybook 被打包成一个小型的、仅用于开发的、 作坊 与您的应用程序一起存在。它提供了一个隔离的 iframe 来呈现组件,而不受应用程序业务逻辑和上下文的干扰。这有助于您将开发重点放在组件的每个变体上,甚至是难以触及的边缘案例。

随着产品 UI 的扩展,Storybook 成为一个活生生的目录,用于组织每个 UI 组件及其故事。在开发期间,在与应用程序不同的节点进程中运行它。这样,您可以随时查看任何故事,而无需启动整个应用程序。

这听起来像是额外的工作……

开发人员经常在其应用程序的上下文中构建 UI 组件和状态。但在应用程序中,组件与杂乱的业务逻辑、应用程序上下文和全局状态相关联,使得调试变得棘手。您可以通过在 Storybook 的孤立环境中进行开发来回避这些浪费时间的复杂情况。

开发人员启动整个堆栈以更新某些 CSS 的情况并不少见。这不仅麻烦,而且您还浪费时间等待整个应用程序重建。 Storybook 通过仅构建 UI 层提供了一种更轻松的替代方案。这样您就可以将精力集中在单个组件上。

使应用程序 UI 处于正确状态以 开始 工作具有挑战性。您可以放入临时数据来触发状态,注释掉代码以查看空状态,或者使用开发工具来模拟加载状态。 Stories 是可移植的固定装置,可让您提供模拟数据、提供程序甚至网络请求,以按需生成特定的组件状态。

Storybooks for Microsoft, Shopify, and Hewlett Packard Enterprise

好处

当你写故事时,你会免费获得一堆额外的好处。

**开发更耐用的 UI
** 隔离组件和页面,然后跟踪它们的用例 故事 .验证难以触及的 UI 边缘案例。使用插件来模拟组件所需的一切——上下文、API 请求、设备功能等。

✅ **轻松测试 UI
** 故事是跟踪 UI 状态的一种实用的、可重复的方式。在开发过程中使用它们对 UI 进行现场测试。 Storybook 提供了用于自动化的内置工作流程 可访问性 , 相互作用 , 和 视觉的 测试。或者将故事作为测试用例,将它们导入其他 JavaScript 测试工具 .

**文档 UI 供您的团队重复使用
** Storybook 是 UI 的唯一真实来源。 Stories 索引您的所有组件及其各种状态,使您的团队可以轻松找到和重用现有的 UI 模式。故事书也会自动生成 文件 从那些故事中。

**分享 UI 的实际工作原理
** 故事展示了 UI 的实际工作方式,而不仅仅是它们应该如何工作的图片。这使每个人都对当前生产的内容保持一致。 出版故事书 得到队友的认可。或者 嵌入 它们在 wiki、Markdown 和 Figma 中以简化协作。

一次写故事,到处重复使用

故事书由 组件故事格式 ,一个基于 JavaScript ES6 模块的开放标准,用于组件变体。这实现了开发、测试和设计工具之间的互操作。每个故事都导出为 JavaScript 函数,使您可以在其他工具中重复使用它们。没有供应商锁定。

重用故事 测试库 来验证交互。把它们放进去 彩色 用于视觉测试。审计故事可访问性 斧头 .或测试用户流程 剧作家 .重用可解锁更多工作流程,无需额外维护成本。

无需繁重的工作即可构建 UI

77% 的开发者 同意发展比 10 年前更复杂。尽管 JavaScript 工具取得了进步,但开发人员仍然面临着越来越棘手的前端挑战。

Storybook 旨在帮助您更快地开发复杂的 UI,同时具有更高的耐用性和更低的维护成本。 Storybook 被 100 多个人使用也就不足为奇了。 龙头企业 和成千上万的 开发商 .

随着 7.0 即将到来,Storybook 继续变得更好。以下是对未来的展望:

  • ✅ 为我们的核心框架提供“它只是工作”的 SLA
  • ⚡️ 性能大修以减少启动和构建时间
  • 设计和可用性更新
  • 流行 JavaScript 工具的集成
  • 交互测试更新和新的测试运行器
  • 文档插件改版为 2.0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/9626/50130200

标签:为什么,故事,故事书,应用程序,Storybook,UI,2022,组件
From: https://www.cnblogs.com/amboke/p/16648352.html

相关文章

  • 2022 年 8 月 JavaScript 新闻和更新
    2022年8月JavaScript新闻和更新向所有JavaScript崇拜者致敬!很遗憾夏天结束了,但我们准备了一份最新的JavaScript新闻摘要来让你振作起来。今天,您将熟悉我们全新......
  • 2022 HDU多校9
    ArithmeticSubsequence(二进制、思维、分治)Problem给定一个长度为\(n\)的序列,问是否可以对它重新排序使得重排后的序列中不存在等差子序列Solve如果一个数出现了\(3......
  • 工作感受月记202209月
    2022年09月01日成都静默三天以应对疫情。从杭州桐庐回来后,就开始居家三天,刚准备去公司,遇上了全市静默三天。此刻,在家,写日杂。今日工作事项:1/在做lili和qingbo关于azu......
  • 缩点后 spfa求最长路(不知道为什么top+dp做不了)
    #include<queue>#include<cstdio>#include<cstring>#defineN500005usingnamespacestd;structedge{intto,val,next;}e[N];intm,n,p,s,cnt,g[N],u[N],v......
  • 【Uniapp】uview的配置与为什么不能正常使用uview的组件?
    年少不知Vue的好,错把layui当成宝不用太在意这句话,只是我的感慨1.安装与配置:在HBuilderX创建Uniapp项目,可以不用启动uniCloud,Vue的版本随意选择即可,常用vue2.x。根据官......
  • 2022 HDU多校8
    Theramore(思维)Problem给定一个01串,可以进行无限次操作,每次操作可以把一个长度为奇数的区间翻转,问可以得到的字典序最小的01串是多少Solvehit1:反转后奇数位置还是在......
  • The 2022 Hangzhou Normal U Summer Trials
    A.Hello,ACMer!这题就是找到hznu的个数#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){strings;cin>>s;intcnt=0;for(i......
  • 数据库学习笔记 (本数据库学习笔记以SQL sever 2019 为例进行学习) 20220831 第四节课
    两层映像两层映像E-CMapping:ExternalSchema-ConceptualSchemaMapping----将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换----便于用户观察和......
  • 2022 8 29
    https://www.lanqiao.cn/problems/1463/learning/主要是运行时间问题:importosimportsysn=2021041820210418l=[]i=2x=nwhilei<pow(x+1,0.5):ifx%i==0......
  • 2022-09-01 第二小组 张晟源(ajax,axios)
    JavaWeb一,AJAX异步刷新(局部刷新),前端技术,可以给后台发请求异步:整个页面不会全部刷新,只有某个局部刷新  验证用户名存在 使用ajax发送请求,页面不可以通过后台跳转......