【react】react18的学习(五)--样式私有化

文章探讨了在React和Vue中管理组件样式的几种方法,包括行内样式、约定类名、CSSModules、react-jss库以及styled-components。CSSModules提供模块化样式,react-jss允许在JS中定义样式并支持传参,而styled-components则是将CSS写在JS组件内。此外,还提到了高阶组件(HOC)的概念在样式管理和组件动态化中的应用。

上一篇:【react】react18的学习(四)–复合组件通信

vue中scoped,react中没有;

  • 方式一:【个别样式可用】行内样式style,不利于复用维护;

  • 方式二:【公共样式常用】人为约定,每个组件类名不重复即可,如外层以组件名为前缀:.nav-*{}

  • 方式三:【公共样式可用,原生css写法】CSS Modules:1、以Nav.module.css为样式文件;2、使用import sty from './Nav.module.css',这个对象是键值对,以css中类名为键,以生成的唯一值为值;3、使用className={sty.box}

// 以Nav.modules.css为样式文件
.box{
   
   }
.box2{
   
   composes: box;} //组合,相当于使用box2,自动加了box
:global(.demo) {
   
   }// 不参与处理,最终还是.demo
// 导入
import sty from './Demo.module.css'
sty={
   
   box:'Nav_box_c6EW3'} //生成唯一值,做类名
className={
   
   sty.box}
  • 方式四:【常用于hooks组件】基于css-in-js思想,安装react-jss
    • css modules相同之处:返回对象键值对;
    • 不同之处:前者是css写法,后者是js写法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值