跳到内容
+

关于实验室

此包托管了尚未准备好移至核心的孵化器组件。

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

随着开发者使用和测试组件并报告问题,维护者会更多地了解组件的缺点:缺少的功能、可访问性问题、错误、API 设计等等。组件使用得越久、越频繁,就越不可能发现新问题,从而需要引入重大更改。

要使组件准备好移至核心,需要考虑以下标准

  • 它需要被使用。我们在文档中使用 Google Analytics(以及其他指标)来评估每个组件的使用情况。使用率低的实验室组件要么意味着它尚未完全工作,要么意味着对其需求较低。
  • 它需要与核心组件的代码质量相匹配。它不必是完美的才能成为核心的一部分,但组件应该足够可靠,以便开发者可以依赖它。
    • 每个组件都需要类型定义。目前实验室组件不需要类型化,但要移至核心则需要类型化。
    • 需要良好的测试覆盖率。一些实验室组件目前没有全面的测试。
  • 它可以用作杠杆来激励用户升级到最新主要版本吗?社区越不分散越好。
  • 它需要在中短期内发生重大更改的可能性较低。例如,如果它需要一个可能需要重大更改的新功能,那么最好推迟将其提升到核心。

安装

要安装并保存在您的 package.json 依赖项中,请运行以下命令之一

npm install @mui/lab @mui/material

请注意,实验室对 Material UI 组件具有对等依赖。

TypeScript

为了从主题的 CSS 覆盖默认属性自定义 中获益,TypeScript 用户需要导入以下类型。在内部,它使用 模块扩展 来扩展默认主题结构,使其包含实验室中可用的扩展组件。

import type {} from '@mui/lab/themeAugmentation';

const theme = createTheme({
  components: {
    MuiTimeline: {
      styleOverrides: {
        root: {
          backgroundColor: 'red',
        },
      },
    },
  },
});