位置: IT常识 - 正文

React通过classnames库添加类(react中key)

编辑:rootadmin
React通过classnames库添加类 React添加Class的方式

推荐整理分享React通过classnames库添加类(react中key),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react中key,react中classname,react中classname,react的class,react中classname,react通过iframe引用本地html,react通过标签获取元素,react通过ref属性获取属性,内容如对您有帮助,希望把文章链接给更多的朋友!

在vue中添加class是一件非常简单的事情:

你可以通过传入一个对象, 通过布尔值决定是否添加类:

<button :class="{ active: isFlag, aaa: true}">按钮</button>

你也可以传入一个数组:

<!-- 1.基本使用 --><h2 :class="['aaa', 'bbb']">Hello Vue</h2><!-- 2.数组中存放变量 --><h2 :class="[className1, className2]">Hello Vue</h2>

甚至是对象和数组混合使用:

<!-- 数组中放一个对象语法 --><h2 :class="['aaa', { active: isFlag }]">Hello Vue </h2>React通过classnames库添加类(react中key)

而在React中就相对繁琐了, React在JSX给了我们开发者足够多的灵活性,你可以像编写JavaScript代码一样,通过一些逻辑来决定是否添加某些class:

例如用三元运算符判断是否添加类

<h2 className={`'title' ${isActive ? 'active' : ''}`}>我是标题</h2>

或者将要添加的类放在一个数组中, 在让数组中的元素使用空格连接

<h2 className={['title', (isActive ? 'active' : '')].join(' ')}>我是标题</h2>

当时如果是简单的类, 判断一个类是否添加还是比较容易, 如果需要判断多个, 处理起来就显得比较麻烦, 并且代码的可读性也会显得不友好

这个时候我们可以借助于一个第三方的库:classnames

很明显,这是一个用于动态添加classnames的一个库。

首先需要安装classnames库: npm i classnames

classNames 是一个函数, 这个函数接受任意数量的参数,可以是字符串或对象

classNames('foo', 'bar'); // => 'foo bar'classNames('foo', { bar: true }); // => 'foo bar'classNames({ 'foo-bar': true }); // => 'foo-bar'classNames({ 'foo-bar': false }); // => ''classNames({ foo: true }, { bar: true }); // => 'foo bar'classNames({ foo: true, bar: true }); // => 'foo barclassNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'classNames(null, false, 'bar', undefined, 0, 1, { baz: null }, ''); // => 'bar 1'

示例代码

render() { const { isActive } = this.state return ( <div> {/* 传入两个字符串, 表示绑定两个class */} <h2 className={classNames("aaa", "bbb")}>标题</h2> {/* 明确绑定aaa类, 根据变量的布尔值决定是否绑定bbb */} <h2 className={classNames("aaa", {bbb: isActive})}>标题</h2> {/* js是无法识别短横线的, 如果是短横线连接的类名, 需要用引号包裹 */} <h2 className={classNames({ "aaa-bbb": isActive })}>标题</h2> {/* 有多个不确定是否添加的类名, 可以使用多个对象 */} <h2 className={classNames({aaa: isActive}, {bbb: isActive})}>标题</h2> {/* 也可以写在一个对象中 */} <h2 className={classNames({aaa: isActive, bbb: isActive})}>标题</h2> {/* 和vue一样, 也是支持数据的写法, 以及数组和对象的混合写法 */} <h2 className={classNames(["aaa", "ccc"])}>标题</h2> <h2 className={classNames(["aaa", {bbb: isActive}])}>标题</h2> </div> )}
本文链接地址:https://www.jiuchutong.com/zhishi/300159.html 转载请保留说明!

上一篇:Vue 之 vue3 与 TS 的配合使用整理(vue3和ts)

下一篇:26岁转行网络安全,成功上岸安全开发!(27岁零基础转行做网络工程师)

  • 如何设置微信封面图片(如何设置微信封面视频)

    如何设置微信封面图片(如何设置微信封面视频)

  • 微信如何置顶到第一个(微信里面如何可以置顶)

    微信如何置顶到第一个(微信里面如何可以置顶)

  • vivo x27锁屏声音怎么换(vivox27锁屏声音怎么换)

    vivo x27锁屏声音怎么换(vivox27锁屏声音怎么换)

  • mate30可以改指纹特效吗(华为mate30增加指纹)

    mate30可以改指纹特效吗(华为mate30增加指纹)

  • 苹果屏幕颜色怎么设置(苹果屏幕颜色怎么调整白)

    苹果屏幕颜色怎么设置(苹果屏幕颜色怎么调整白)

  • 抖音号可以两个人同时登吗(抖音号可以两个人用吗)

    抖音号可以两个人同时登吗(抖音号可以两个人用吗)

  • 苹果手机陌生人打不进来怎么回事(苹果手机陌生人打进来一直在通话中怎么办)

    苹果手机陌生人打不进来怎么回事(苹果手机陌生人打进来一直在通话中怎么办)

  • 手机防窥原理(手机防窥原理图)

    手机防窥原理(手机防窥原理图)

  • 拼多多拒收钱怎么退回?(拼多多拒收后如何退款)

    拼多多拒收钱怎么退回?(拼多多拒收后如何退款)

  • 淘宝换绑手机号显示已注册(淘宝换绑手机号需要原手机号验证码吗)

    淘宝换绑手机号显示已注册(淘宝换绑手机号需要原手机号验证码吗)

  • 抖音前面蓝色数字是什么(抖音里蓝色是关闭还是打开)

    抖音前面蓝色数字是什么(抖音里蓝色是关闭还是打开)

  • 拼多多未开启拼小圈别人能看到吗(拼多多未开启拼小圈是不是就不用关闭拼小圈了)

    拼多多未开启拼小圈别人能看到吗(拼多多未开启拼小圈是不是就不用关闭拼小圈了)

  • 华为mate20hd怎么关(华为mate20hdr怎么开)

    华为mate20hd怎么关(华为mate20hdr怎么开)

  • 关系数据语言的共同特征有哪些(关系数据语言的共同特点)

    关系数据语言的共同特征有哪些(关系数据语言的共同特点)

  • cad2007安装过早结束(cad2007安装过早结束win10)

    cad2007安装过早结束(cad2007安装过早结束win10)

  • d站是什么(d站是什么意思 到底是什么)

    d站是什么(d站是什么意思 到底是什么)

  • iphone已停用连接itunes恢复后数据还在吗(iphone已停用连接it u n e s)

    iphone已停用连接itunes恢复后数据还在吗(iphone已停用连接it u n e s)

  • ios12访问限制入口在哪里(ios12 访问限制)

    ios12访问限制入口在哪里(ios12 访问限制)

  • qq浏览器私密空间在哪(qq浏览器私密空间怎么打开)

    qq浏览器私密空间在哪(qq浏览器私密空间怎么打开)

  • 太极符号如何打出来(太极特殊符号大全复制)

    太极符号如何打出来(太极特殊符号大全复制)

  • qq好友热播怎么关(qq好友热播怎么看关注的人)

    qq好友热播怎么关(qq好友热播怎么看关注的人)

  • 微信消息怎么群发给每个人 (微信消息怎么群发到群聊)

    微信消息怎么群发给每个人 (微信消息怎么群发到群聊)

  • 拼多多流量悬浮窗怎么关闭(拼多多悬浮窗是什么意思)

    拼多多流量悬浮窗怎么关闭(拼多多悬浮窗是什么意思)

  • 美团外卖为什么是语音验证(美团外卖为什么突然单量少了)

    美团外卖为什么是语音验证(美团外卖为什么突然单量少了)

  • 小规模纳税人能开专票吗2023
  • 出口退税申报系统安装路径
  • 固定资产的进项税额可以抵扣吗
  • 异地预缴怎么做账
  • 筹建期印花税退税分录
  • 2019年所得税季度增值税怎么报
  • 去年的增值税普票能作废吗?
  • 开发产品计入什么科目
  • 高危行业企业安全费用提取
  • 并购产生的商誉怎么冲减
  • 上个月没有结账可以做下个月的账吗
  • 转贴现视为贷款银行如何进行账务处理?
  • 发票未到货已到怎么入账
  • 补充医疗保险 个人账户可以报销吗
  • 公司成立多久费用可进开办费
  • 物流分公司怎么运作
  • 纳税人登记为一般纳税人后一律不得转为小规模纳税
  • 对外投资增长过快
  • 非货币性资产交换准则
  • 单位代收员工退休金会计分录
  • 固定资产无偿移交怎么做账
  • 消费税应纳税额计算方法是什么有何特点
  • 如何申请残疾人
  • 超市收代金券如何处理
  • 房地产企业售房印花税
  • 未担保余值什么意思
  • 进口增值税属于海关代征的税收吗
  • bios中如何关闭cd/dvd
  • 企业办理银行结汇流程
  • 购货返利怎么做账
  • PHP daddslashes 使用方法介绍
  • 工程完工后的质保金怎么入账
  • 固定资产清理如何结转
  • vue中下载文件
  • 个体工商户年报逾期怎么办
  • 简述gnss数据处理流程
  • php遍历数组使用的是foreach
  • css获取id
  • docker windows -v
  • 其他应收款的核算范围包括
  • 什么情况下开劳务费发票
  • 应收账款项目的金额公式
  • 工业企业发生的各项费用
  • 净利润弥补以前年度亏损
  • 管理费用属于产品成本么
  • 一般纳税人承租个人房屋怎么抵扣
  • 简易征收的税款可以抵减
  • 小规模企业现金流量表
  • 我方税费差额赔偿的时效
  • 呆账坏账对应五级分类
  • 基本户注销了还能查询流水吗
  • 商业企业固定资产一次性扣除
  • 检查sql脚本语法
  • mysql常用功能
  • sql取汉字
  • 如何win8.1升级win10正式版
  • win8系统怎么把字体调大
  • Windows Server 2008:手足之争下的赢家
  • win10升级电脑
  • win7怎么禁止u盘自动运行
  • win7网卡驱动怎么卸载
  • mac读取光驱
  • macos dock
  • 锁屏壁纸设置后不显示怎么办
  • jquery对动态生成的进行操作
  • 分区工具怎么取消主分区
  • bash shell control z
  • 关于android工程中的assets目录的正确说法
  • 备份系统三要素
  • jquery自定义函数
  • 安卓圆角矩形图标
  • js日期格式转换
  • js object的原型
  • python提取信息
  • 全国税务查询
  • 个体工商户个人所得税
  • 安徽省各地区最低录取中考分数线
  • 企业未开立基本存款账户承诺书的相关规定
  • 契税减税、免税条件
  • 小规模纳税人需要建账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设