React-CSS

简介: React-CSS
  1. React中的样式
    React并没有像Vue那样提供特定的区域给我们编写CSS代码
    所以你会发现在React代码中, CSS样式的写法千奇百怪

2. 内联样式

内联样式的优点:

  • 内联样式, 样式之间不会有冲突
  • 可以动态获取当前state中的状态

内联样式的缺点:

  • 写法上都需要使用驼峰标识
  • 某些样式没有提示
  • 大量的样式, 代码混乱
  • 某些样式无法编写(比如伪类/伪元素)
class App extends React.Component{
   
    constructor(props){
   
        super(props);
        this.state = {
   
            color: 'red'
        }
    }
    render(){
   
        return (
            <div>
                <p style={
   {
   fontSize:'50px', color: this.state.color}}>我是段落1</p>
                <p style={
   {
   fontSize:'50px', color:'green'}}>我是段落2</p>
                <button onClick={
   ()=>{
   this.btnClick()}}>按钮</button>
            </div>
        );
    }
    btnClick(){
   
        this.setState({
   
            color: 'blue'
        })
    }
}
export default App;

3. 外链样式

将CSS代码写到一个单独的CSS文件中, 在使用的时候导入进来

外链样式的优点:

  • 编写简单, 有代码提示, 支持所有CSS语法

外链样式的缺点:

  • 不可以动态获取当前state中的状态
  • 属于全局的css,样式之间会相互影响
//Home.tsx文件
import React from 'react';
import './Home.css'
class Home extends React.Component{
   
    render() {
   
        return (
            <div id={
   'home'}>
                <p>我是home段落</p>
                <a href={
   'www.it666.com'}>我是home超链接</a>
            </div>
        )
    }
}
export default Home;
/*Home.css文件*/
#home p{
   
    font-size: 50px;
    color: red;
}
#home a{
   
    color: yellow;
}

4.Css Module

  • React的脚手架已经内置了css modules的配置:
    • .css/.less/.scss 等样式文件都修改成 .module.css/.module.less/.module.scss 等;
  • Css Modules优点
    • 编写简单, 有代码提示, 支持所有CSS语法
    • 解决了全局样式相互污染问题
  • Css Modules缺点

    • 不可以动态获取当前state中的状态

      image.png


      那么怎样解决Css Modules缺点不可以动态获取当前state中的状态的问题呢?
      先来了解一下模板字符串
      拓展点——模板字符串
      ES6中的模板字符串
      const str = `my name is ${
               name}, my age is ${
               age}`;
      console.log(str); // my name is yiya_xiaoshan, my age is 18
      
      除此之外,react中还有一些ES6中没有的特性
      在JS中除了可以通过()来调用函数以外,,其实我们还可以通过模板字符串来调用函数
      function test(...args) {
             
      console.log(args);
      }
      test(1, 3, 5); // [ 1, 3, 5 ]
      test`1, 3, 5`; // [ [ '1, 3, 5' ] ]
      
      通过模板字符串调用函数规律:
  • 参数列表中的第一个参数是一个数组, 这个数组中保存了所有不是插入的值

  • 参数列表的第二个参数开始, 保存的就是所有插入的值

总结结论
我们可以拿到模板字符串中所有的内容\所有非插入的内容
=>我们可以拿到模板字符串中所有插入的内容
所以我们就可以对模板字符串中所有的内容进行单独的处理

test`1, 3, 5, ${
     name}, ${
     age}`; 
// [ [ '1, 3, 5, ', ', ', '' ], 'yiya_xiaoshan', 18 ]
目录
相关文章
|
API Python Windows
对 Python 获取屏幕截图的 4 种方法详解
对 Python 获取屏幕截图的 4 种方法详解
|
5月前
|
机器学习/深度学习 人工智能 自动驾驶
企业内训|模拟AI场景课程——某汽车厂商
4月18日和19日,东北某市,TsingtaoAI团队为某汽车厂商的智能驾驶业务和研发团队交付“模拟AI场景课程”。本课程基于该厂商在AI领域的战略布局,结合汽车行业智能化转型趋势,以“场景化、实战化、前瞻性”为核心,聚焦AI技术从理论到落地的全链路。通过模拟真实业务场景(如智能座舱优化、智能制造、自动驾驶仿真),帮助学员掌握AI基础能力,并快速应用于研发、生产、营销等环节。
162 4
|
SQL 运维 DataWorks
DataWorks常见问题之dataworks运维中心指定时间“运行到该节点”失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
XML JSON 前端开发
jQuery - AJAX 简介
jQuery - AJAX 简介
65 0
|
安全 数据安全/隐私保护 Windows
Mac远程桌面连接Windows问题,出现“由于账户限制,您无法登陆”
Mac远程桌面连接Windows问题,出现“由于账户限制,您无法登陆”
1021 0
|
算法框架/工具
|
数据中心 数据安全/隐私保护 虚拟化
|
Web App开发 安全 前端开发
RESTful架构风格下的4大常见安全问题|洞见
伴随着RESTful架构风格的大量应用,一些本来难以察觉到的安全问题也逐渐开始显现出来。在我经历过的各种采用RESTful架构风格的应用中,某些安全问题几乎在每个应用中都会出现,这些都可以通过一些安全实践来避免。
4384 0
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1234 5
|
10天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1217 87