material-ui中断点props(xs,sm,md ...)的布尔值的目的是什么

IT技术 reactjs material-ui code-documentation
2021-05-12 10:17:16

我正在努力寻找文档(或通过代码试验获得的结果)将布尔值作为 material-ui 中网格组件的断点props的值的目的是什么。查阅grid api 文档显示布尔值是断点props lg、md、sm、xl、xs 的有效值。

我明白,如果我说sm={3}我会得到一个组件,一旦显示宽度增加到超过 xs 断点(600px),它就会改变以占用 3 个网格列单位,但不知道将布尔值作为值传递:

例如,提供xs={true}md={false}成为的原因是什么?我怎么可能自己知道原因?(是否有一些我缺乏的基础知识?)

2个回答

例如,提供 xs={true} 或 md={false} 的原因是什么?我怎么可能自己知道原因?(是否有一些我缺乏的基础知识?)

事实是,库和框架通常在执行过程中固执己见。除非他们自己解释,否则无法轻易说出每个决定背后的每个原因。虽然在某些情况下可以通过适度的努力推断出推理,但在大多数情况下,其他情况太小了,不值得大量解释。您可以并且应该在项目的 github 页面上打开一个问题(请先搜索!)以找出其背后的逻辑,这通常会导致文档方面的改进。

现在进入其背后的推理。这需要对源代码进行一些检查,这取决于您对语言的理解程度以及他们编写的程度。

在页面底部,它说:

...组件实现以获取更多详细信息...

在链接之后,它显示了它如何根据传递的值设置样式。因为true它会

if (size === true) {
  // For the auto layouting
  styles[key] = {
    flexBasis: 0,
    flexGrow: 1,
    maxWidth: '100%',
  };
  return;
}

并且false没有被覆盖,这可能意味着它会阻止完全应用这些样式。

希望有帮助!

根据文档

  • xs,超小:0px 或更大
  • sm,小:600px 或更大
  • md, medium: 960px 或更大
  • lg,大:1280px 或更大
  • xl,超大:1920px 或更大

参考https://material-ui.com/layout/breakpoints/

例如,提供 xs={true} 或 md={false} 的原因是什么?我怎么可能自己知道原因?(是否有一些我缺乏的基础知识?)

xs={true}意味着该列将占据给定行中的相等空间。如此给予

<Grid container spacing={24}>
  <Grid item xs>
    <Paper className={classes.paper}>xs</Paper>
  </Grid>
  <Grid item xs>
    <Paper className={classes.paper}>xs</Paper>
  </Grid>
  <Grid item xs>
    <Paper className={classes.paper}>xs</Paper>
  </Grid>
</Grid>

这将有 3 个相等的网格。

参考https://material-ui.com/layout/grid/#auto-layout