Reactjs 在MaterialUI中进行样式化的惯用方法是什么?
有几种方法可以在材质UI中进行样式设置Reactjs 在MaterialUI中进行样式化的惯用方法是什么?,reactjs,styles,material-ui,Reactjs,Styles,Material Ui,有几种方法可以在材质UI中进行样式设置 使用makeStyles: 第二种方法是,我可以为每个单独的组件输入一个特殊的输入。例如: let props: MuiBoxProps = { mb: '1px' } 类型推断可用于查看编译错误 但是,此方法不适用于makeStyles,因为其返回类型始终为cssprroperties 然而,在第一种情况下,我可以通过添加道具在内部设置它们的样式 因此,总而言之: 特定组件不可能进行类型推断。可以批量应用道具 可以对特定组件进行类型推断。无法批量
makeStyles
:let props: MuiBoxProps = {
mb: '1px'
}
类型推断可用于查看编译错误
但是,此方法不适用于makeStyles
,因为其返回类型始终为cssprroperties
然而,在第一种情况下,我可以通过添加道具在内部设置它们的样式
因此,总而言之:
什么是官方建议?事实上,你选择哪种方式并不重要,因为两者都在官方文件中。问题在于你对哪种方法或方式感到满意 但是,是的,我认为最好的方法是
使用样式
,这也是我在专业开发代码中使用的
以下是一个例子:
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const styles = {
root: {
background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
border: 0,
borderRadius: 3,
boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
color: 'white',
height: 48,
padding: '0 30px',
},
};
function HigherOrderComponent(props) {
const { classes } = props;
return <Button className={classes.root}>Higher-order component</Button>;
}
HigherOrderComponent.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(HigherOrderComponent);
从“React”导入React;
从“道具类型”导入道具类型;
从“@material ui/core/styles”导入{withStyles}”;
从“@material ui/core/Button”导入按钮;
常量样式={
根目录:{
背景:“线性梯度(45度,Fe6B30%,FF8E53 90%),
边界:0,
边界半径:3,
boxShadow:'0 3px 5px 2px rgba(255、105、135、3)',
颜色:'白色',
身高:48,
填充:“0 30px”,
},
};
功能高级命令组件(道具){
常量{classes}=props;
返回高阶分量;
}
HigherOrderComponent.propTypes={
类:PropTypes.object.isRequired,
};
导出默认样式(样式)(高级命令组件);
let props: MuiBoxProps = {
mb: '1px'
}
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const styles = {
root: {
background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
border: 0,
borderRadius: 3,
boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
color: 'white',
height: 48,
padding: '0 30px',
},
};
function HigherOrderComponent(props) {
const { classes } = props;
return <Button className={classes.root}>Higher-order component</Button>;
}
HigherOrderComponent.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(HigherOrderComponent);