什么是“主题”/“课程”?

Posted

技术标签:

【中文标题】什么是“主题”/“课程”?【英文标题】:What is 'theme' / 'classes'? 【发布时间】:2018-08-01 19:26:39 【问题描述】:

我正在制作一个 react 网络应用程序。

尝试使用 ma​​terial-ui@next 作为用户界面。

我正在过material-ui@next的demo,(如https://material-ui-next.com/demos/app-bar/)

每个示例演示代码都使用“主题”或“类”,我想知道它们在给出的任何演示代码中扮演什么角色。

主题、类如下所示

const styles = theme => (
root: 
    width: '100%',
    height: 1300,
    marginTop: theme.spacing.unit * 3, <<<<<<<<<<<<<<<<< here
    zIndex: 1,
    overflow: 'hidden',
,
.
.
.
.

 render() 
    const  classes, theme  = this.props; <<<<<<<<<<<< classes / theme here
    const  drawer_location, open  = this.state;
.
.
.
.
App.propTypes = 
classes: PropTypes.object.isRequired,
theme: PropTypes.object.isRequired, 

如果您能解释它们在实际应用中的使用方式和原因,我将不胜感激。

我的猜测是这些主题和类正在从父组件传递到当前组件。如果是这样,为什么这些 material-ui 演示代码使用那些? ? ? (只有一个组件)。 .

我在哪里可以学习如何使用这个“类”/“主题”??!

谢谢!

【问题讨论】:

您是否检查过以下链接:material-ui-next.com/customization/themes/#themes 是的!谢谢!!!!!!!!!! 【参考方案1】:

在这些示例中,classes 是在使用 withStyles HOC 提供您在代码中定义的样式的 CSS 类名称时添加到您的组件的属性。

withStyles 可以接受一个对象:

const styles = 
  root: 
    width: '100%',
    maxWidth: 360,
  ,
;

...或一个函数,如果您需要访问 material-ui 主题对象:

const styles = theme => (
  root: 
    width: '100%',
    maxWidth: 360,
    backgroundColor: theme.palette.background.paper,
  ,
);

下面是使用withStyles 和名为App 的组件的示例:

export default withStyles(styles)(App);

withStyles 接受您的样式对象(或函数)并返回一个接受组件的函数。您提供给结果函数的组件将用 classes 属性装饰。 classes 属性是一个对象,它将styles 中指定的类名称与文档中定义的实际名称进行映射。

请查看有关使用 CSS in JS、overriding CSS classes 和 the usage of withStyles 的文档。

【讨论】:

以上是关于什么是“主题”/“课程”?的主要内容,如果未能解决你的问题,请参考以下文章

Springboot整合RabbitMQ(三)——Topic主题交换机

Python网络爬虫课程设计

Learndash:使用数据库或插件导入/导出所有课程/主题/课程

APP在线课程设计

如何借助一对多关系在 Django 中使用外键从课程中获取主题

博客园自定义主题分享-简洁漂亮