use*_*231 5 reactjs material-ui
这个问题的目的是了解幕后发生的事情。每次找到代码时,makeStyles()我都会感觉自己只是在进行纯复制粘贴,而不了解引擎盖下发生的事情。所以我想在这里发布一个问题,以便有人可以帮助我。
我已经在许多React应用程序中看到以下类型的代码。我很想知道当我们打电话给时发生了什么makeStyles()。因此,我跳入了它的定义,但我不明白它的含义。有人可以帮助我了解如何阅读/理解它。
我在这里了解的是,我正在传递一个名为的函数theme。通过该函数后,我不知道发生了什么。我也很高兴有人能帮助我解决这个问题。
// Calling makeStyles()
const useStyles = makeStyles(theme => ({
root: {
display: 'flex',
},
drawer: {
[theme.breakpoints.up('sm')]: {
width: drawerWidth,
flexShrink: 0,
},
},
appBar: {
marginLeft: drawerWidth,
[theme.breakpoints.up('sm')]: {
width: `calc(100% - ${drawerWidth}px)`,
},
},
menuButton: {
marginRight: theme.spacing(2),
[theme.breakpoints.up('sm')]: {
display: 'none',
},
},
toolbar: theme.mixins.toolbar,
drawerPaper: {
width: drawerWidth,
},
content: {
flexGrow: 1,
padding: theme.spacing(3),
},
}));
//definition of makeStyles()
import { Theme as DefaultTheme } from './createMuiTheme';
import { Styles, WithStylesOptions } from '@material-ui/styles/withStyles';
import { StylesHook } from '@material-ui/styles/makeStyles';
export default function makeStyles<
Theme = DefaultTheme,
Props extends {} = {},
ClassKey extends string = string
>(
styles: Styles<Theme, Props, ClassKey>,
options?: WithStylesOptions<Theme>,
): StylesHook<Styles<Theme, Props, ClassKey>>;
Run Code Online (Sandbox Code Playgroud)
Rya*_*ell 13
制作样式
useStyles),该函数将在函数组件中使用。stylesOrCreator。然后由getStylesCreator 函数将其规范化为具有create指向将返回样式对象的函数的属性的对象。useStyles函数
makeStyles通常被称为useStyles是一个自定义的钩子。这意味着它只能从函数组件内部调用,并且必须无条件调用。useStyles函数时,几乎没有发生任何事情。该函数知道它的stylesCreator,但尚未使用它。通过styleCreator 的 options,该useStyles函数知道index,稍后将用于确定<head>这些样式相对于其他调用makeStyles/生成的其他样式表在样式表中的位置useStyles。<head>生成的样式表中的索引makeStyles/useStyles。使用样式
makeStyles。应该从函数组件中调用它以获取classes下面描述的对象。props对象
props是使用它的函数组件的 。然后这将作为参数传递给值为函数的任何样式规则。classes对象
classes.rulename,您可以利用组件渲染将该 CSS 类应用于元素。<head>每个样式规则包含一个 CSS 类的 DOM 中添加一个样式表。当您调用该useStyles函数时,会发生大部分魔术。函数的开头在这里。以下是它执行的关键步骤:
classes对象中的类名。<head>。| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |