【问题标题】:Regular ClassName with Material UI带有 Material UI 的常规 ClassName
【发布时间】:2022-01-16 13:37:58
【问题描述】:

我已经阅读了一些类似问题的答案,但由于 materialUI 更新,@mui/styles 被贬低了,我没有完全理解。

根据 mui 文档,我们可以使用 sx prop 创建自定义样式,就像这样

 <Typography variant="h5" sx={{backgroundColor: 'red' }}>Header</Typography>

但是当我在 v5 中使用常规的 classNames 时,它也能正常工作:

//css

.makeRed {
backgroundColor: red
}
 
// jsx
<Typography variant="h5" className="makeRed">Header</Typography>

问题是 - 使用常规类是否有陷阱,我需要重写 mui 类?

(昨天开始了我的mUI之旅)

【问题讨论】:

    标签: reactjs material-ui jsx


    【解决方案1】:

    我一直在为一项新工作复习 Material,我发现如果你想让事情更容易改变和运行得更快,你会通过框架来工作。 Material 的目的是提高可重用性,因此您需要遵循该目的,并在您在应用程序中执行的所有操作中使您的风格保持一致。

    如果你最好的选择是:

    const useStyles = makeStyles({
    makeRed: {
      background-color: 'red'
    }
    
    })
    
    
    export default useStyles;
    

    然后在实际的组件中,只需将你的类 const 作为。

    const classes = useStyles();
    <Typography className = {classes.makeRed} />
    

    【讨论】:

    • 感谢您描述这种可重用的逻辑——这有助于理解 mui 的用处,这对我来说是新的“概念”。无论如何 makeStyles 现在已经被弃用了,但是我们可以创建类似于你使用 'sx' 语法的意思的东西:创建全局对象样式:const styles = { makeRed: backgroundColor: 'red' },将它导入任何地方并在 mui 组件中使用:。谢谢你的好主意
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 2017-08-29
    • 2019-07-25
    • 2020-07-25
    • 2020-06-16
    • 2021-10-05
    相关资源
    最近更新 更多