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

roh*_*219 5 reactjs material-ui

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

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

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

Wal*_*ari 0

来自 Material-UI 网站:

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

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

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

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

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

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