React(八)样式及CSS模块化
(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模块化的更多相关文章
- react antd样式按需加载配置以及与css modules模块化的冲突问题
通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在 ...
- create-react-app创建react项目 css模块化处理
用的css预处理器用sass,其他大同小异. 用create-react-app创建项目,执行npm run eject弹出配置文件(此操作不可逆): 配置sass,用的最新的CRA,webpack4 ...
- 在react中实现CSS模块化
react中使用普通的css样式表会造成作用域的冲突,css定义的样式的作用域是全局,在Vue 中我们还可以使用scope来定义作用域,但是在react中并没有指令一说,所以只能另辟蹊径了.下面我将简 ...
- css模块化及CSS Modules使用详解
什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...
- vue/react/angular开发的css架构思考
前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势 ...
- React项目 - 几种CSS实践
前言团队在使用react时,不断探索,使用了很多不同的css实现方式,此篇blog总结了,react项目中常见的几种css解决方案:inline-style/radium/style-componen ...
- 谈 CSS 模块化
以前看过模块化的相关资料以及解释,对模块化有了一个表皮的了解,自己也做了一些相关的实践,由于接触到的项目交小,所以也没能更好的去体现和理解模块化,但总体还是有那么一些感悟,但是如果要说怎么才能算是好的 ...
- css模块化思想(一)--------命名是个技术活
引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css ...
- 谈CSS模块化【封装-继承-多态】
第一次听到“CSS模块化”这个词是在WebReBuild的第四届“重构人生”年会上,当时我还想,“哈,CSS也有模块化,我没听错吧?”事实上,我没听错,你也没看错,早就有CSS模块化这个概念了.之所以 ...
随机推荐
- ES7的async/await
async 表示这是一个async函数,await只能用在这个函数里面. await 表示在这里等待promise返回结果了,再继续执行. await 后面跟着的应该是一个promise对象 awai ...
- smbclient匿名访问win7共享文件夹
windows: 首先需要开启Guest用户,设置密码为空. 然后需要在管理工具下的本地安全策略中检查本地策略\用户权限分配\拒绝从网络访问这台计算机如果有Guest或Guests则删掉. 然后正常共 ...
- c++ 常用头文件
1.#include<iostream> iostream 的意思是输入输出流.#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头 ...
- [系统集成] RT(Request Tracker)执行自定义脚本及发送微信、短信的实现方法
RT(Request Tracker)是一个基于 Perl 语言的开源状态跟踪和工作流系统,支持审批.权限管理等功能,中文化支持的也不错,可以作为企业的流程审批系统使用.可惜的是,该系统在国内使用的不 ...
- 【转】pyhton之Reportlab模块——生成pdf文件
[转]pyhton之Reportlab模块 reportlab模块是用python语言生成pdf文件的模块 安装:pip install reportlab 模块默认不支持中文,如果使用中文需要注册 ...
- Large-Margin Softmax Loss for Convolutional Neural Networks
paper url: https://arxiv.org/pdf/1612.02295 year:2017 Introduction 交叉熵损失与softmax一起使用可以说是CNN中最常用的监督组件 ...
- ABP代码生成器与升级到VS2017VSIX
首先,我不是要分享一个代码生成器,而是怎么升级到VS2017,简单介绍下 如何将2015的VSIX项目升级到2017 阳光铭睿 写了一篇<分享一个与ABP配套使用的代码生成器源码>,并在群 ...
- c# Lamdba及DataTable AsEnumerable()的使用
Lamdba是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例如调用:First, Single, ToList-.的时候)才执行. 1.Where var var_dtTable = dt ...
- Matlab imshow, image, imagesc 三者详细分析
1.显示RGB图像 相同点:这三个函数都是把m*n*3的矩阵中的数值当做RGB值来显示的. 区别:imshow将图像以原始尺寸显示,image和imagesc则会对图像进行适当的缩放(显示出来的尺寸大 ...
- docker基础命令汇总
搜索镜像 docker search 镜像名称 例如:docker search centos7 下载镜像 docker pull 镜像名称 例如:docker pull centos7 启动容器 d ...