现在使用脚手架(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的更多相关文章

  1. React Native 中 CSS 的使用

    首先声明,此文原作者为黎 跃春 React Native中CSS 内联样式 对象样式 使用Stylesheet.Create 样式拼接 导出样式对象 下面的代码是index.ios.js中的代码: / ...

  2. webpack react 单独打包 CSS

    webpack react 单独打包 CSS webpack require css的方法,默认会把css 打入到js文件中,加载顺序有问题,如果需要打出独立的css文件 操作步骤: step1: 安 ...

  3. 12 react 基础 的 css 过渡动画 及 动画效果 及 使用 react-transition-group 实现动画

    一. 过渡动画 # index.js import React from 'react';import ReactDOM from 'react-dom';import App from './app ...

  4. 聊一聊 React 中的 CSS 样式方案

    和 Angular,Vue 不同,React 并没有如何在 React 中书写样式的官方方案,依靠的是社区众多的方案.社区中提供的方案有很多,例如 CSS Modules,styled-compone ...

  5. [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 ...

  6. [React] react+redux+router+webpack+antd环境搭建一版

    好久之前搭建的一个react执行环境,受历史影响是webpack3.10.0和webpack-dev-server2.7.1的环境,新项目准备用webpack4重新弄弄了,旧的记录就合并发布了(在没有 ...

  7. React/React Native 的ES5 ES6写法对照表

    //es6与es5的区别很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component ...

  8. React/React Native 的ES5 ES6写法对照表-b

    很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教 ...

  9. React: React组件的生命周期

    一.简介 在前面的第二篇博文中对组件的生命周期虽然做了一个大略介绍,但总感觉说的过于简单,毕竟生命周期是React组件的核心部分.在我们熟练使用React挂载和合成组件来创建应用表现层的过程中,针对数 ...

随机推荐

  1. python--闭包函数、装饰器

    先来点补充. x= def foo(): print(x) x= foo() 结果: x= def foo(): global x x= print(x) foo() print(x) 结果: x= ...

  2. POJ 3279 Fliptile (dfs+二进制)

    Description Farmer John knows that an intellectually satisfied cow is a happy cow who will give more ...

  3. hdu 2089 不要62 (数位dp)

    Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别 ...

  4. Linux 应用程序编程基础

    一个计算机应用程序在内存中可以分成两个部分:存放代码的代码段和存放数据的数据段.代码段存放用户编写的代码;数据段存放栈和堆. 相关内存管理函数 #include <stdlib.h> vo ...

  5. C#排列组合类,写彩票算法的朋友们可以来看一看

    public class PermutationAndCombination<T>    {        /// <summary>        /// 交换两个变量    ...

  6. CDN技术之--流媒体CDN系统的组成

    流媒体业务是一种对实时性.连续性.时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,对best-effort的IP网络都是一个不小的冲击 –高带宽要求–高QoS要求–组播.广播要求(目前IP ...

  7. iconfont字体图标的使用方法

    转载于https://www.cnblogs.com/hjvsdr/p/6639649.html 我之前因为项目用bootstrap比较多,所以使用font awesome字体图标比较多,后来接触到了 ...

  8. JS实现的ajax

    function createXMLHttpRequest() { try { return new XMLHttpRequest(); } catch (e) { try { return new ...

  9. -webkit-box 高度自动填满

    <style> .box{ display: -webkit-box; -webkit-box-orient: vertical; height: 200px; background: # ...

  10. 几道JS代码手写面试题

    几道JS代码手写面试题   (1) 高阶段函数实现AOP(面向切面编程)    Function.prototype.before = function (beforefn) {        let ...