(1)内联样式

注:样式要采用驼峰命令发,如果非要使用原生css样式写法,需加引号

缺点:一些动画,伪类不能使用

class App extends Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
} render() {
const styleCss = {
header : {
color: 'red',
backgroundColor: '#ccc',
"padding-top": '20px',
paddingBottom: '20px'
}
} return (
<div className="App">
<p style={styleCss.header}>这是一段文字,哈哈</p>
</div>
);
}
}

  内联样式中的表达式:

class App extends Component {
constructor () {
super();
this.state = {
minHeader: false
};
}; switchHeader () {
this.setState({
minHeader:!this.state.minHeader
})
} render() {
const styleCss = {
header: {
cursor: 'pointer',
backgroundColor: 'red',
color: '#fff',
padding: (this.state.minHeader) ? '10px' : '30px'
}
};
return (
<div className="App">
<p style={styleCss.header} onClick={this.switchHeader.bind(this)}>这是一段文字,哈哈</p>
</div>
);
}
}

(2)引入css文件

  在该文件夹下使用import引入或者在index.html上面使用link引入

注:给html标签添加class属性需使用className

import './style/style.css' //创建的css文件

class App extends Component {
render() {
return (
<div>
<p className="blueColor">这是一段文字,哈哈</p>
</div>
);
}
}

(3)CSS模块化

  安装依赖 style-loader、css-loader

  babel-plugin-react-html-attrs(如果安装了这个插件,className 可以直接写成 class)

  优点:

    • 所有的样式都是local的,解决了命名冲突和全局污染的问题
    • class名生成规则灵活,可以此来压缩class名
    • 只需引入组件的JS就能搞定组件的所有JS和CSS
npm install style-loader css-loader babel-plugin-react-html-attrs --save
render() {
var colorCss = require('./style/style.css')
return (
<div className="App">
<p className={colorCss.blueColor}></p>
<p >这是一段文字,哈哈</p>
</div>
);
}

(4)JSX样式与Css样式互转(内联样式模式)

  在线转换工具:https://staxmanade.com/CssToReact/

  render() {
const styleCss = {
header : {
color: 'red',
backgroundColor: '#ccc',
"padding-top": '20px',
paddingBottom: '20px'
}
} return (
<div className="App">
<p style={styleCss.header}>这是一段文字,哈哈</p>
</div>
);
}

React(八)样式及CSS模块化的更多相关文章

  1. react antd样式按需加载配置以及与css modules模块化的冲突问题

    通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在 ...

  2. create-react-app创建react项目 css模块化处理

    用的css预处理器用sass,其他大同小异. 用create-react-app创建项目,执行npm run eject弹出配置文件(此操作不可逆): 配置sass,用的最新的CRA,webpack4 ...

  3. 在react中实现CSS模块化

    react中使用普通的css样式表会造成作用域的冲突,css定义的样式的作用域是全局,在Vue 中我们还可以使用scope来定义作用域,但是在react中并没有指令一说,所以只能另辟蹊径了.下面我将简 ...

  4. css模块化及CSS Modules使用详解

    什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...

  5. vue/react/angular开发的css架构思考

    前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势 ...

  6. React项目 - 几种CSS实践

    前言团队在使用react时,不断探索,使用了很多不同的css实现方式,此篇blog总结了,react项目中常见的几种css解决方案:inline-style/radium/style-componen ...

  7. 谈 CSS 模块化

    以前看过模块化的相关资料以及解释,对模块化有了一个表皮的了解,自己也做了一些相关的实践,由于接触到的项目交小,所以也没能更好的去体现和理解模块化,但总体还是有那么一些感悟,但是如果要说怎么才能算是好的 ...

  8. css模块化思想(一)--------命名是个技术活

    引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css ...

  9. 谈CSS模块化【封装-继承-多态】

    第一次听到“CSS模块化”这个词是在WebReBuild的第四届“重构人生”年会上,当时我还想,“哈,CSS也有模块化,我没听错吧?”事实上,我没听错,你也没看错,早就有CSS模块化这个概念了.之所以 ...

随机推荐

  1. 学习itop4412开发板有哪些资料可学习?能否学会

    1.光盘资料 下面简单的做一下了解,在需要使用这些资料的时候,会针对性的做详细介绍. 将文件以及文件夹按照“名称+递增”的方式排列,如下: 01_PCB_SCH_DATASHEET-- -----开发 ...

  2. dubbo直连提供者 & 只订阅 & 只注册

    1.    dubbo直连提供者 在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点 ...

  3. 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

  4. rethinking imageNet pre-training

    paper url: https://arxiv.org/abs/1811.08883  当在数据量足够和训练iterations足够的情况下,ImageNet pretrain不会对最后的性能有帮 ...

  5. 关于form-checkbox 必填项无效的错误

    校验规则要写在一个form里 检查data,给个默认值. 否则刚进去错误提示不显示. 其次,要加 type 类型,注意大小写 触发类型为 change .

  6. java - day008 -final ,static ,访问控制符.

    面向对象   封装         类: 模板         对象: 实例         引用,遥控器         构造方法                新建对象时执行           ...

  7. 高可用Redis(四):列表,集合与有序集合

    1.列表类型 1.1 列表数据结构 左边为key,是字符串类型 右边为value,是一个有序的队列,与python的列表结构相同 可以在Redis中对列表的value进行如下操作 从左边添加元素 从右 ...

  8. kafka Network

    Kafka network Processor SocketServer.Processor override def run() { startupComplete() try { while (i ...

  9. 一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别

    一.这四个方法的用处 1.用来编码和解码URI的 统一资源标识符,或叫做 URI,是用来标识互联网上的资源(例如,网页或文件)和怎样访问这些资源的传输协议(例如,HTTP 或 FTP)的字符串.除了e ...

  10. SpringMVC源码分析-400异常处理流程及解决方法

    本文涉及SpringMVC异常处理体系源码分析,SpringMVC异常处理相关类的设计模式,实际工作中异常处理的实践. 问题场景 假设我们的SpringMVC应用中有如下控制器: 代码示例-1 @Re ...