1. 内联样式
- style 接受一个采用小驼峰命名属性的 JavaScript 对象,,而不是 CSS 字符串;
- 并且可以引用state中的状态来设置相关的样式;
export default class App extends PureComponent {
constructor(props) {
super(props);
this.state = {
titleColor: "red"
}
}
render() {
return (
<div>
<h2 style={
{
color: this.state.titleColor, fontSize: "20px"}}>我是App标题</h2>
<p style={
{
color: "green", textDecoration: "underline"}}>我是一段文字描述</p>
</div>
)
}
}
内联样式的优点:
- 内联样式, 样式之间不会有冲突
- 可以动态获取当前state中的状态
内联样式的缺点:
- 写法上都需要使用驼峰标识
- 某些样式没有提示
- 大量的样式, 代码混乱
- 某些样式无法编写(比如伪类/伪元素)
2. 普通的css
普通的css我们通常会编写到一个单独的文件。
App.js
import React, {
PureComponent } from 'react';
import './style.css';
import Home from '../home';
export default class App extends PureComponent {
render() {
return (
<div id="app">
App
<h2 className="title">我是App的title</h2>
<Home/>
</div>
)
}
}
App.css
.title {
color: blue;
}
但是组件化开发中我们总是希望组件是一个独立的模块,即便是样式也只是在自己内部生效,不会相互影响;
普通的css都属于全局的css,样式之间会相互影响;
比如编写Home.js的逻辑代码:
import React, {
PureComponent } from 'react';
import './style.css';
export default class Home extends PureComponent {