reactjs material-ui中的makeStyles到底是什么?[副本]

qlfbtfca  于 2023-06-05  发布在  React
关注(0)|答案(1)|浏览(107)

此问题已在此处有答案

Internal implementation of "makeStyles" in React Material-UI?(2个答案)
1年前关闭。
我刚开始学习React material-ui,我发现了这个makeStyles函数,他们说它返回一个Hook。
我记得在React hooks中,自定义钩子是通过 Package 一个内置钩子来实现的。我试着查看makeStyles内部,它有一些互操作性和一些css-in-javascript模式。
我真的受够了一遍又一遍的规则。现在有人能告诉我这个makeStyle函数是什么吗?也许可以建议一个更好的阅读material-ui的方法。
谢谢Stack Overflow的各位。

nbysray5

nbysray51#

如果您熟悉旧版本的Material-UI,您可能已经使用withStyles在MUI组件中使用您的自定义样式。
withStyles只是一个HOC(高阶组件),用作 Package 器,将classes属性分配给您的组件。您可以进一步使用classes对象将特定的类分配给组件中的DOM或MUI元素。

makeStyles只是一个继承者,它返回一个钩子(访问自定义类)。现在这只是一种现代React方式,以避免HOC。
MUI v3.9.3

import { withStyles } from '@material-ui/core/styles';

const styles = {
  root: {
    backgroundColor: 'red'
  },
};

class MyComponent extends React.Component {
  render () {
    return <div className={this.props.classes.root} />;
  }
}

export default withStyles(styles)(MyComponent);

MUI v4.9.5

import React from 'react';
import { makeStyles } from '@material-ui/core/styles';

const useStyles = makeStyles({
  root: {
    backgroundColor: 'red'
  },
});

export default function MyComponent(props) {
  const classes = useStyles(props);
  return <div className={classes.root} />;
}

相关问题