react react使用css
现在使用脚手架(react-create-app)的项目不需要在在css文件后面添加module就会自动为其添加模块化后缀
在react 中使用css有以下几种方法
第一种全局使用
app.js
import React from 'react';
import Router from "./router" import './App.css'; function App() {
return (
<div className="App">
<div className='head'><span>app</span></div>
<Router/>
</div>
);
} export default App;
直接在入口文件引入,我这里是app.js 引入或css文件会作用至所有的组件,适合引入全局样式
第二种使用 组件使用css
import React from 'react';
import './home.css' //直接引入css文件
class Home extends React.Component {
constructor(props) {
super(props);
this.state = {
date: new Date().getTime()
}
} componentDidMount() {
function f(){
console.log("ffff");
}
console.log(false||f())
} render() {
return (
<div>
//在jsx中使用
<div className='head'>
<span>主页</span>
</div>
<div><span>{this.date}</span></div>
</div>
)
}
} export {Home}
这种方法和第一种没有太大的区别都是作用在全局上,但是这样引入的css优先级并没有第一种的高
第三种 现在前端都在追求模块化的思想,上述的两种方法,在组件数量非常大的时候,样式污染问题就太痛苦了,所以在进行react开发的时候,普遍都是用,组件独享css样式的方法
CSS Modules
CSS Modules 的做法就是通过配置将.css文件进行编译,编译后在每个用到css的组件中的css类名都是独一无二的,从而实现CSS的局部作用域。具体原理可以看看阮一峰老师的博客 CSS Modules 用法教程。
//home.module.css{
head:{ //你定义的类名 被import的时候会变成对象的属性
color:red;
}
}
//home.js:
import React from 'react';
import head from'./home.module.css' //将home.css改成,react使用的webpack 会自动识别module.css文件后缀 然后将其编译
class Home extends React.Component {
constructor(props) {
super(props);
this.state = {
date: new Date().getTime()
}
}
componentDidMount() {
function f(){
console.log("ffff");
}
console.log(false||f())
}
render() {
return (
<div>
<div>
//在jsx中使用
<span className={head.head}>主页</span>
</div>
<div><span>{this.date}</span></div>
</div>
)
}
}
export {Home}
还用其他几种引入css的方法,但其目的和第三种都差不多,都是为了防止样式污染,在此就不一一叙述了,感兴趣的同学可以自己百度
react react使用css的更多相关文章
- React Native 中 CSS 的使用
首先声明,此文原作者为黎 跃春 React Native中CSS 内联样式 对象样式 使用Stylesheet.Create 样式拼接 导出样式对象 下面的代码是index.ios.js中的代码: / ...
- webpack react 单独打包 CSS
webpack react 单独打包 CSS webpack require css的方法,默认会把css 打入到js文件中,加载顺序有问题,如果需要打出独立的css文件 操作步骤: step1: 安 ...
- 12 react 基础 的 css 过渡动画 及 动画效果 及 使用 react-transition-group 实现动画
一. 过渡动画 # index.js import React from 'react';import ReactDOM from 'react-dom';import App from './app ...
- 聊一聊 React 中的 CSS 样式方案
和 Angular,Vue 不同,React 并没有如何在 React 中书写样式的官方方案,依靠的是社区众多的方案.社区中提供的方案有很多,例如 CSS Modules,styled-compone ...
- [React] React Fundamentals: Integrating Components with D3 and AngularJS
Since React is only interested in the V (view) of MVC, it plays well with other toolkits and framewo ...
- [React] react+redux+router+webpack+antd环境搭建一版
好久之前搭建的一个react执行环境,受历史影响是webpack3.10.0和webpack-dev-server2.7.1的环境,新项目准备用webpack4重新弄弄了,旧的记录就合并发布了(在没有 ...
- React/React Native 的ES5 ES6写法对照表
//es6与es5的区别很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component ...
- React/React Native 的ES5 ES6写法对照表-b
很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教 ...
- React: React组件的生命周期
一.简介 在前面的第二篇博文中对组件的生命周期虽然做了一个大略介绍,但总感觉说的过于简单,毕竟生命周期是React组件的核心部分.在我们熟练使用React挂载和合成组件来创建应用表现层的过程中,针对数 ...
随机推荐
- eureka学习(二)
eureka服务端创建好后,现在我们让eureka客户端(也就是服务提供者)注册到eureka上去. 首先加入依赖包: <!--将微服务provider注册到eureka--> <d ...
- <自动化测试>之<unittest框架使用1>
要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...
- ios 最全的常用字符串操作
1.将NSData / NSString转化 1 2 3 NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; // 将字符串 ...
- Python 定时任务框架 APScheduler 详解
APScheduler 最近想写个任务调度程序,于是研究了下 Python 中的任务调度工具,比较有名的是:Celery,RQ,APScheduler. Celery:非常强大的分布式任务调度框架 R ...
- 23. requests安装与使用
Windows下安装requests 在介绍requests库之前,先贴一下requests官网,当然也可以访问requests中文网站 requests官网给出以下介绍:Requests 唯一的一个 ...
- 【狼】狼的unity3d脚本学习
记录学习中的问题,时刻更新 unity获取鼠标所在位置 BOOL GetCursorPos( LPPOINT lpPoint); 获取鼠标所在位置,不过原点在左下角 ///////////// ...
- Normal Equation Algorithm
和梯度下降法一样,Normal Equation(正规方程法)算法也是一种线性回归算法(Linear Regression Algorithm).与梯度下降法通过一步步计算来逐步靠近最佳θ值不同,No ...
- 使用php的curl函数post返回值为301永久迁移的问题。(301 Moved Permanently)
本文链接:https://blog.csdn.net/Angus_01/article/details/82467652添加一行curl_setopt: curl_setopt($ch,CURLOPT ...
- 第一周复习一 ( HTML表单form)
form <from id="" name="" method="post/get" action="">& ...
- 【Linux】- CentOS7安装java运行环境
centos7中安装java环境,在安装前先查看有无安装过java环境.直接运行java命令,会提示命令未找到,则是没有安装过java环境. 1.检查 也可以通过rpm命令查看: rpm -qa |g ...