【问题标题】:Difference between components in material-ui lab @material-ui/lab/ and material-ui corematerial-ui lab @material-ui/lab/ 和 material-ui core 中组件的区别
【发布时间】:2020-04-07 09:08:34
【问题描述】:

这似乎是一个通用问题,与其他几个 React 开源框架相比,我真的很喜欢 Material ui 的可扩展性..

问题“@material-ui/core”和“@material-ui/lab”中的组件有什么区别? 材料 ui 文档说“这个实验室托管了尚未准备好移动到核心的孵化器组件。”那么当它说组件还没有准备好迁移到核心时,这是什么意思? (我正在寻找更具确定性的东西,例如组件尚未完全测试/等待用户评论/可能会出现重大错误等)。

例如下面沙箱中的 WRT 代码,它使用@material-ui/lab/Autocomplete。 https://codesandbox.io/s/material-multiselect-working-ig9s8 。我如何推断/确定它目前有多好。过去几个月的路线图没有看到任何更新......

【问题讨论】:

  • 更新:我在材料 ui 实验室中使用了一些组件,一切正常 - 没有遇到任何不寻常的构建问题或任何其他问题。我想它就像使用风险自负有点取决于你的应用程序我猜。

标签: reactjs material-ui


【解决方案1】:

来自 Material-UI 网站:

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

随着开发人员使用和测试组件并报告问题,维护人员会更多地了解组件的缺点:缺少的功能、可访问性问题、错误、API 设计等。组件越旧且使用越多,出现这种情况的可能性就越小是否会发现新问题并随后需要引入重大更改。

对于准备移动到核心的组件,需要考虑以下标准:

  • 需要使用它。 Material-UI 团队使用 Google Analytics 统计数据以及其他指标来评估每个组件的使用情况。使用率低的实验室组件要么意味着它尚未完全正常工作,要么意味着对它的需求很低。
  • 需要与核心组件的代码质量相匹配。它没有 必须完美才能成为核心的一部分,但组件应该 足够可靠,开发人员可以依赖它。
    • 每个组件都需要类型定义。目前不需要输入实验室组件,但需要输入才能移动到核心。
    • 需要良好的测试覆盖率。一些实验室组件没有 目前有全面的测试。
  • 是否可以用来激励用户升级到最新的主要版本?社区越分散越好。
  • 它需要在 短期/中期未来。例如,如果它需要一个新功能 可能需要进行重大更改,最好延迟 将其提升到核心。”

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

总结 因此,据我了解,实验室组件可能未经测试、键入或未被广泛使用。此外,它们的代码质量可能很差,或者正在等待可能从根本上改变 API 的功能/重构。

【讨论】:

  • 接受这个答案。旁注:我确实询问了同行,他们给出了类似的答案,我确实实现了实验室的一项功能(对于一个很少使用的应用程序)。看起来不错
  • 是的,我确信它们大部分时间都可以立即工作,但稍后实验室组件可能会更改其 API 或功能。因此,从开发人员的角度来看,与核心组件相比,稍后更新您的应用程序依赖项可能需要对 Lab 组件进行一些(或大量)额外工作。不确定该组件是否也可以从实验室中删除,如果没有足够的人使用它。
猜你喜欢
  • 2020-05-21
  • 2018-08-30
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 2019-05-25
  • 2019-11-14
  • 2019-02-11
  • 2021-10-24
相关资源
最近更新 更多