material-ui lab @material-ui/lab/和material-ui core之间的组件区别

5

这可能看起来像一个普通问题,但与其他几个React开源框架相比,我真的很喜欢Material UI的可扩展性。

问题: "@material-ui/core"和"@material-ui/lab"中的组件有什么区别?Material UI文档说:"这个实验室托管了那些还没有准备好转移到核心的孵化器组件。" 那么,当它说这些组件还没有准备好转移到核心时,这意味着什么?(我正在寻找更加确定性的答案,如该组件尚未完全测试/等待用户评价/可能存在重大错误等等)。

例如,在下面的沙盒代码中,它使用了"@material-ui/lab/Autocomplete"。 https://codesandbox.io/s/material-multiselect-working-ig9s8。我如何推断/确定它的当前状态如何?最近几个月的路线图中没有看到任何更新...


更新:我在Material UI Lab中使用了一些组件,一切都很好 - 没有遇到任何异常的构建问题或其他问题。我想这就像是自行决定使用的东西。我想这也取决于你的应用程序。 - rohit2219
1个回答

0

来自Material-UI网站:

“实验室和核心之间的主要区别在于组件版本控制方式。拥有单独的实验室包使我们能够在必要时发布重大更改,而核心包遵循较慢的政策。

随着开发人员使用和测试组件并报告问题,维护者了解到组件的缺点:缺少功能、可访问性问题、错误、API设计等。组件使用越久,问题被发现的可能性就越小,因此需要引入重大更改的可能性也越小。

为了使组件准备好移动到核心,考虑以下标准:

  • 它需要被使用。Material-UI团队使用Google Analytics等指标来评估每个组件的使用情况。低使用率的实验组件可能意味着它还没有完全工作或者需求量很少。
  • 它需要与核心组件的代码质量相匹配。作为核心的一部分,它不必完美无缺,但是组件应该足够可靠,以便开发人员可以依赖它。
    • 每个组件都需要类型定义。目前不要求实验组件具有类型,但是如果要移动到核心,则需要具有类型。
    • 需要良好的测试覆盖率。一些实验组件目前没有全面的测试。
  • 它能否用作激励用户升级到最新主要发布版本的杠杆作用?社区越不分散,越好。
  • 它需要在短/中期内具有较低的突破变化的可能性。例如,如果它需要一个新功能,这可能需要一个突破变化,那么将其推广到核心可能更好。

https://material-ui.com/components/about-the-lab/

概述 据我所理解,实验室组件可能不会被测试、打字或广泛使用。此外,它们可能具有较差的代码质量,或者是等待功能/重构来彻底改变 API。


接受这个答案。顺带一提:我向同行咨询过,他们给了类似的答案,而且我也从实验室实现了一个功能(针对一个使用不多的应用程序)。看起来还可以。 - rohit2219
是的,我确定它们在大多数情况下立即起作用,但随后实验室组件可能会更改其API或功能。因此,从开发人员的角度来看,与核心组件相比,稍后更新应用程序依赖项时可能需要一些(或很多)额外工作来处理实验室组件。如果使用该组件的人不够多,不确定是否也可以将其从实验室中移除。 - Waltari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接