PareMark具有大量适度的复杂UI模式,可从反应组件基元中受益。我们已经有对话框,工具提示,弹出菜单,您可以拖动的东西,使用自动完成搜索框。
从头开始构建这些通常是一个坏主意,因为你会实施你注意的零件,就像点击的视觉效果和经验一样,但是错过了对其他用法模式都很重要的所有事情,就像组件的交互方式一样重要使用标签焦点,键盘快捷键和aria角色。您必须从头开始解决困难问题,如如何以与页面的其他部分的z索引一起使用的方式定位一个开头。
当我使用Rails时,默认答案是Web组件。 Web组件是...争议。像富裕的哈里斯这样的人们已经很好地描述了他们的问题。对于那个项目而言,他们工作得很好,因为我们的预期有限,宗教地困扰着Github的战斗组件,并做了很多服务器渲染。因此,AutoComplete在AutoCompleTe UI中呈现由服务器本身呈现,而不是转移为JSON。
Placemark是一个React应用程序,并且大部分工作都在客户端。 Web组件可能适用于几个地点,但您触发了许多更复杂的交互式情况,还有许多更多依赖性UI之间的依赖性。正如我之前粗略描述的那样,良好的反应良好。
例如,React-Autosuggest是多年来自动建议搜索的最佳解决方案。不幸的是,很多这些项目都是停滞不前的,因为开放的良好问题是有利可图,有趣,可持续的或通常是一个好主意。此外,您必须处理不同方法,如类型签字类型,这些组件如何进行样式,以及不同的文档方式。一般:这极度令人印象深刻的是,人们能够建立,但它是一个更好的经历,更好的长期下注,使用统一的组件生态系统。
像材料 - ui,蚂蚁设计和chakra ui。这些总是让我感到惊讶:材料 - ui主页看起来像它的样子,图书馆在这个写作中有68,740个github星星。蚂蚁设计有72,1880颗星,是......一个混合袋。脉轮可能是最好的努力。我非常怀疑这是一种文化缺口:蚂蚁是基于Mega-corp蚂蚁组,并有很多中国文档。
无论如何:我不希望组件是高级:这些组件将封装您真正知道的复杂DOM结构,添加隐藏的按钮和Div,以支持此或该设计元素。我想使用抽象以获得效率,而不是无知。此外,这些库的默认样式始终从复杂的应用程序所需的内容发出。尤其是材料设计,一种在低信息密度网页中茁壮成长的设计系统,在高信息密度应用中蓬勃发展。
我在某些部分中使用了所有这些。 adraid& ARGRIV在抽象方面类似:默认情况下,它们都为您提供组件层次结构,抛光交互性和可访问性,以及以各种方式进行样式的功能。
反应 - aria是较低的:而不是组件,它给你钩子。所以页面上的每个最后一个元素都是你敏锐地意识到的东西,你把这些部分连接在一起。您正在从地上构建一个设计系统。反应 - aria实例趋于更长,并且比达到或基因的例子更复杂。更多的决定被推迟到您的申请。所有文件结构都是您的决定。
这些钩子非常整齐地组成:像USEMENU这样的更高级别的钩子是基于UseFocus的低级钩子。我发现自己使用了很多两种,并撰写新的钩子来支持新功能。 Reft-Aria的文档在解释每个钩子的明显特征中,还是所有额外的输入模式,通常是钩子用作本机HTML元素的抽象或替换为什么。
PareMark目前正在使用React-Aria实际上需要组件库的所有内容。它肯定有其缺点。我注意到了:
React-Aria在内部不使用TypeScript Stregt Mode,其示例是vanilla JavaScript。将这些示例转换为打字签名,然后让它们使用严格的模式,可能是一个挑战,而且由于任何类型的系统警告,我都会有一些挑战。库在内部使用TypeScript,并公开质量类型,这只是一个可能被添加的类型键项示例的问题。
自动完成搜索与任何系统都很困难,并且反应aria肯定不容易。花了很多调整,仍然感到iffy。那说,它与REACH-UI一样难。
作曲作曲aria的钩子需要深入了解它们。预期哪个:您正在构建一些复杂的东西,因此您应该容忍具有学习曲线的系统。主要是我一直在致力于撰写React-Aria的菜单和叠加系统,以支持类似MacoS的菜单栏交互,并且很难。基数的菜单基元看起来很棒,并且可能是我制作交换机的一个地方。
在某些情况下,我想使用反应频谱,围绕反应的反应谱,但它陷入了Adobe的设计系统,与下一步不相容。看反应谱示例会导致一些FOMO - 它们设计精心设计并具有花哨的过渡。我的DIY组件......更少。
但这些qualms都不超过反应 - 咏叹调的成功。它有一个重要的想法 - 即使用React Hooks,您可以制作一个成功的库,该库将功能和可访问性添加到您提供的任何DOM结构上。这个想法很好地运作:它简化了虚拟DOM,它是CSS-In-JS图书馆的狂野西部混乱。它源于道具膨胀,这折磨了超级柔性的组件库。
此外,React-Aria是非常良好的记录,其贡献者群只是温和的顶级重物:Adobe似乎在几年的过程中向图书馆投入了几个人的工作时间。未来对这个图书馆非常明亮。
无论您使用哪种工具,我都认为复杂的UIS将变得复杂。我选择了很多这些作品的反应 - aria不是基于它是最简单的选择,而是对你能做的几乎没有限制的想法以及无官能的方面 - 它的维护和文件 - 是好强大。
那么,这是它的投入,需求和未来的地标计划。如果我正在建立一些更简单的时间和紧张的时间表,我强烈考虑像脉轮这样的东西。但是到目前为止,为此目的,这正好运作良好 - 我正在花更多的时间时间来重新实现第十次对话框。