当前位置: 首页 > article >正文

React如何像Vue一样将css和js写在同一文件

如果想在React中想要像Vue一样把css和js写到一个文件中,可以使用CSS-in-JS。

使用CSS-in-JS

下载

npm i styled-components

使用

就像写scss一样,不过需要声明元素的类型
基本语法及展示如下,

import styled from "styled-components"

export default () => {
  const Father = styled.div`
    width: 200px;
    height: 200px;
    background: pink;
    span {
      font-size: 20px;
    }
    &: hover {
      background: skyblue;
    }
  `
  const Son = styled.span`
    color: #f8e;
  `
  return (
    <>
      <Father>
        <Son>我是Son</Son>
      </Father>
    </>
  )
}

也可以通过styled()选择要继承的样式,并且可以拿到状态。

import { useState } from "react"
import styled from "styled-components"
export default () => {
  const Father = styled.div`
    width: 200px;
    height: 200px;
    background: pink;
    span {
      font-size: 20px;
    }
    &: hover {
      background: skyblue;
    }
  `
  const Son = styled.span`
    color: #f8e;
  `
  const Footer = styled(Father)`
    display: ${({ isShow }) => (isShow ? "block" : "none")};
    padding: 20px;
    border: 1px solid #333;
    border-radius: 30px;
  `

  const [show, setShow] = useState(false)
  return (
    <>
      <Father>
        <Son>我是Son</Son>
      </Father>
      <button onClick={() => setShow(!show)}>点我控制Footer的显示/隐藏</button>
      <Footer isShow={show}>我是Footer</Footer>
    </>
  )
}

在这里插入图片描述


http://www.kler.cn/a/155515.html

相关文章:

  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • 网页版五子棋——对战模块(服务器端开发②)
  • 2019年下半年试题二:论软件系统架构评估及其应用
  • 轻松上手:使用Docker部署Java服务
  • C++20 中最优雅的那个小特性 - Ranges
  • Gsensor加速度传感器数据异常及概率性卡死
  • Rust多线程任务,发现有些线程一直获取不到锁【已解决】
  • 设计模式-结构型模式之装饰者设计模式
  • vscode配置代码片段
  • 吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析
  • Ubuntu Linux玩童年小霸王插卡游戏
  • [MySQL]日期和时间函数
  • [Rust] 可迭代类型, 迭代器, 如何正确的创建自定义可迭代类型
  • 安防视频监控/磁盘阵列/集中云存储平台EasyCVR设备录像保活不生效原因是什么?该如何解决?
  • jdk1.8 hashmap源码阅读
  • 轻易云AI:引领企业数智化转型提升企业AI效率
  • python查询、处理、批量存入数据
  • navicat某些表为什么不按主键排序
  • linux设置主机名
  • Java研学-配置文件
  • 算法设计与实现--贪心篇
  • Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(一)
  • “B2B+OMS方案”,赋能家电巨头构建BC订单一体化能力,促进业务增长|徐礼昭
  • 决策 Diffie-Hellman DDH 和 CDH
  • 在Springboot中操作Redis——五大数据类型
  • Python标准库:copy模块【侯小啾python领航班系列(十五)】