react中引入css的方式是什么
这篇"react中引入css的方式是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"react中引入css的方式是什么"文章吧。
前言
组件式开发选择合适的css
解决方案尤为重要
通常会遵循以下规则:
可以编写局部css,不会随意污染其他组件内的原生;
可以编写动态的css,可以获取当前组件的一些状态,根据状态的变化生成不同的css样式;
支持所有的css特性:伪类、动画、媒体查询等;
编写起来简洁方便、最好符合一贯的css风格特点
在这一方面,vue
使用css
起来更为简洁:
通过 style 标签编写样式
scoped 属性决定编写的样式是否局部有效
lang 属性设置预处理器
内联样式风格的方式来根据最新状态设置和改变css
而在react
中,引入CSS
就不如Vue
方便简洁,其引入css
的方式有很多种,各有利弊
方式
常见的CSS
引入方式有以下:
在组件内直接使用
组件中引入 .css 文件
组件中引入 .module.css 文件
CSS in JS
在组件内
直接在组件中书写css
样式,通过style
属性直接引入,如下:
import React, { Component } from "react";const div1 = { width: "300px", margin: "30px auto", backgroundColor: "#44014C", //驼峰法 minHeight: "200px", boxSizing: "border-box"};class Test extends Component { constructor(props, context) { super(props); } render() { return (123); }}export default Test;上面可以看到,
css
属性需要转换成驼峰写法 这种方式优点:
内联样式, 样式之间不会有冲突
可以动态获取当前state中的状态
缺点:
写法上都需要使用驼峰标识
某些样式没有提示
大量的样式, 代码混乱
某些样式无法编写(比如伪类/伪元素)
组件中引入css文件
将
css
单独写在一个css
文件中,然后在组件中直接引入
App.css
文件:.title { color: red; font-size: 20px;}.desc { color: green; text-decoration: underline;}组件中引入:
import React, { PureComponent } from 'react';import Home from './Home';import './App.css';export default class App extends PureComponent { render() { return () }}我是App的标题
我是App中的一段文字描述
这种方式存在不好的地方在于样式是全局生效,样式之间会互相影响
组件中引入 .module.css 文件
将
css
文件作为一个模块引入,这个模块中的所有css
,只作用于当前组件。不会影响当前组件的后代组件这种方式是
webpack
特工的方案,只需要配置webpack
配置文件中modules:true
即可import React, { PureComponent } from 'react';import Home from './Home';import './App.module.css';export default class App extends PureComponent { render() { return () }}我是App的标题
我是App中的一段文字描述
这种方式能够解决局部作用域问题,但也有一定的缺陷:
引用的类名,不能使用连接符(.xxx-xx),在 JavaScript 中是不识别的
所有的 className 都必须使用 {style.className} 的形式来编写
不方便动态来修改某些样式,依然需要使用内联样式的方式;
CSS in JS
CSS-in-JS, 是指一种模式,其中
CSS
由JavaScript
生成而不是在外部文件中定义此功能并不是 React 的一部分,而是由第三方库提供,例如:
styled-components
emotion
glamorous
下面主要看看
styled-components
的基本使用本质是通过函数的调用,最终创建出一个组件:
这个组件会被自动添加上一个不重复的class
styled-components会给该class添加相关的样式
基本使用如下:
创建一个
style.js
文件用于存放样式组件:export const SelfLink = styled.div` height: 50px; border: 1px solid red; color: yellow;`;export const SelfButton = styled.div` height: 150px; width: 150px; color: ${props => props.color}; background-image: url(${props => props.src}); background-size: 150px 150px;`;引入样式组件也很简单:
import React, { Component } from "react";import { SelfLink, SelfButton } from "./style";class Test extends Component { constructor(props, context) { super(props); } render() { return ( <div> <SelfLink title="People's Republic of China">app.js</SelfLink> <SelfButton color="palevioletred" style={{ color: "pink" }} src={fist}> SelfButton </SelfButton> </div> ); }}export default Test;区别
通过上面四种样式的引入,可以看到:
在组件内直接使用
css
该方式编写方便,容易能够根据状态修改样式属性,但是大量的演示编写容易导致代码混乱组件中引入 .css 文件符合我们日常的编写习惯,但是作用域是全局的,样式之间会层叠
引入.module.css 文件能够解决局部作用域问题,但是不方便动态修改样式,需要使用内联的方式进行样式的编写
通过css in js 这种方法,可以满足大部分场景的应用,可以类似于预处理器一样样式嵌套、定义、修改状态等
以上就是关于"react中引入css的方式是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
样式 组件 方式 文件 状态 内容 属性 作用 动态 局部 简洁 之间 驼峰 混乱 代码 全局 写法 大部分 文字 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 敦煌博物馆数据库 北京互与科技网络安全有限公司 软件开发工程入职培训计划 软件开发外包的注意要点 深圳软件开发网站备案 福州网络安全保障线上学习 服务器后台运行怎么设置 北京智慧星软件开发有限公司 空间数据库查询速度 vb保存图片到数据库 软件开发选什么电脑 郴州软件开发学校 Java软件开发薪资组成 文档服务器docker 数据库采购技术参数 数据库怎么控制模式 福建手机软件开发公司 网络安全模式都进不了系统 计算机网络技术学什么系统 网络安全工作会议主持 网络安全阀 指导意义 网络安全小组组长是谁视频 教案软件开发 eps数据库集群分类 中文句号在数据库中占几个字节 软件开发编程的开发创作 服务器安装到电脑教程 软件开发助理实习记录 派出所网络安全年度工作计划 陕西软件开发外包业务