【发布时间】:2021-08-06 01:19:28
【问题描述】:
我是 Material UI 的新手。在学习的过程中,我了解到材质 UI 的样式可以被类的规则名称覆盖。
如果我有一个元素 - MenuItem,我只需要更改文本的默认样式(例如 fontFamily、fontWeight、fontSize)
根据此处提供的文档https://material-ui.com/api/menu-item/,我使用了 makeStyles 钩子并覆盖了 Menu-Item 根元素的一些属性
示例代码
const useStyles = makeStyles((theme) => ({
menuItem: {
fontFamily: "Raleway",
}
}));
JSX code: <MenuItem onClick={handleClose} component={Link} to="/services" classes={{root: classes.menuItem}}>Services</MenuItem>
在另一个教程中,我发现了另一种覆盖方式 - 使用 className 之类的
const useStyles = makeStyles((theme) => ({
menuItem: {
fontFamily: "Raleway",
}
}));
JSX code: <MenuItem onClick={handleClose} component={Link} to="/services" className={classes.menuItem}>Services</MenuItem>
我的问题在于这部分className={classes.menuItem} and classes={{root: classes.menuItem}}
在使用 root 时 -> 我看到 css 属性被添加到根元素中,但在使用 className={classes.menuItem} 时,我看到一个新类被添加到 DOM 中。但这两种方法在应用程序的行为方面有什么区别,还是只是另一种方式?
谢谢
【问题讨论】:
标签: reactjs material-ui