位置: 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岁零基础转行做网络工程师)

  • 简述企业社群运营方式(企业社群建设)

    简述企业社群运营方式(企业社群建设)

  • 爱奇艺会员怎么看有几个人登录(爱奇艺会员怎么让别人扫码登录)

    爱奇艺会员怎么看有几个人登录(爱奇艺会员怎么让别人扫码登录)

  • xlsb格式怎么打开(xlsb格式怎么打开 苹果手机)

    xlsb格式怎么打开(xlsb格式怎么打开 苹果手机)

  • 微博会员苹果无法购买(苹果开微博会员不生效)

    微博会员苹果无法购买(苹果开微博会员不生效)

  • ipad pro 2020用什么耳机(ipad pro 2020用什么数据线连接电脑)

    ipad pro 2020用什么耳机(ipad pro 2020用什么数据线连接电脑)

  • 华为手机静音了怎么调回来(华为手机静音了闹钟还会响吗)

    华为手机静音了怎么调回来(华为手机静音了闹钟还会响吗)

  • 快手直播怎么清屏(快手直播怎么清除屏幕上的字幕)

    快手直播怎么清屏(快手直播怎么清除屏幕上的字幕)

  • 荣耀30指纹识别不灵敏(荣耀30指纹识别没有了)

    荣耀30指纹识别不灵敏(荣耀30指纹识别没有了)

  • 同一wifi苹果能用安卓不能(同一wifi下两台苹果手机)

    同一wifi苹果能用安卓不能(同一wifi下两台苹果手机)

  • 华为p40hd怎么关(华为p40prohd怎么关闭)

    华为p40hd怎么关(华为p40prohd怎么关闭)

  • opporeno有红外线遥控功能吗(oppo reno有红外)

    opporeno有红外线遥控功能吗(oppo reno有红外)

  • vivo下载管理器关不了(vivo浏览器下载安装)

    vivo下载管理器关不了(vivo浏览器下载安装)

  • cdrom驱动器能读取dvd吗(cd-rom驱动器在哪找)

    cdrom驱动器能读取dvd吗(cd-rom驱动器在哪找)

  • 集线器是第几层设备(集线器属于)

    集线器是第几层设备(集线器属于)

  • 手提电脑休眠怎么唤醒(手提电脑休眠怎么搞)

    手提电脑休眠怎么唤醒(手提电脑休眠怎么搞)

  • 苹果6spnfc在哪里打开(苹果6splus的nfc)

    苹果6spnfc在哪里打开(苹果6splus的nfc)

  • 苹果x充满电后有提示吗(苹果x充满电后还显示充电)

    苹果x充满电后有提示吗(苹果x充满电后还显示充电)

  • 拼多多属于大王卡吗(拼多多属于大王店吗)

    拼多多属于大王卡吗(拼多多属于大王店吗)

  • 苹果语音备忘录怎么重命名(苹果语音备忘录可以录多久)

    苹果语音备忘录怎么重命名(苹果语音备忘录可以录多久)

  • 中征码怎么查询(工商银行中征码怎么查询)

    中征码怎么查询(工商银行中征码怎么查询)

  • 国二选择题知识点(国二选择题题库)

    国二选择题知识点(国二选择题题库)

  • ps暂存盘在哪里清理(ps暂存盘在哪里改)

    ps暂存盘在哪里清理(ps暂存盘在哪里改)

  • viVOx27手机有防跌落功能吗(vivox27有防误触功能吗)

    viVOx27手机有防跌落功能吗(vivox27有防误触功能吗)

  • 实况照片怎么变成视频(实况照片怎么变成动态表情包)

    实况照片怎么变成视频(实况照片怎么变成动态表情包)

  • 爱奇艺是哪一年成立(爱奇艺是哪一年的软件)

    爱奇艺是哪一年成立(爱奇艺是哪一年的软件)

  • 开启PowerPoint的宏(怎样启动powerpoint)

    开启PowerPoint的宏(怎样启动powerpoint)

  • 房地产增值税税率是多少
  • 职工报销的医药费计入什么科目
  • 独资企业怎么交所得税
  • 一张报关单可以分两次退税吗
  • 一般纳税人没有进项怎么交税
  • 客票服务主要包括
  • 一般纳税人普票怎么做分录
  • 固定资产残值怎么处理什么时候处理
  • 破产清算收到的实收资本是破产资产吗
  • 增值税专票劳务费怎么开
  • 融资租赁咨询服务合同需要交印花税吗
  • 固定资产处置如何入账
  • 所得税汇算清缴扣除标准
  • 电子发票可以做报销凭证吗
  • 电器以旧换新的套路
  • 国税退税怎么做账
  • 上海中级会计报名入口
  • 住宿费算业务招待费还是差旅费?
  • 企业分立账务处理办法
  • 残保金必须交社保才能领吗
  • 在windows中桌面是
  • 鸿蒙系统怎么关闭负一屏
  • 引入人工智能
  • 经销商计提折扣怎么做账
  • 开办费的账务处理实例
  • 存入保证金账户分录怎么写
  • 房地产企业前期物业费可否税前扣除
  • 加速折旧的企业
  • 应交增值税明细科目怎么看
  • 对方不开票
  • 如何使用vue
  • 怎样合理的运用网络
  • 增值税为什么不能在税前扣除
  • 6月发5月工资怎么做账
  • 其他收益在利润表填在哪里
  • 未开票交税怎么做账
  • 业务预算包括直销费用吗
  • 织梦自定义模型调用
  • 转回存货跌价准备的会计分录
  • 个体工商户怎么年报
  • 材料成本差异的超支与节约
  • 企业的项目有哪些
  • 个税专项附加扣除标准调整
  • 年度财务报告和年度报告
  • 房地产企业缴纳契税会计分录
  • 应收票据的核算范围包括
  • 当月没认证发票有补救措施吗
  • 合同资产科目设置
  • 个人所得税财产转让所得税率
  • 咋样理解
  • 汽车折旧年限及残值率是多少
  • 企业印花税率
  • 申报高新技术企业专利有什么要求
  • 上海残疾人就业保障金计算公式
  • 建筑业当月有收入,没成本怎样办
  • 企业如何建账之类的账目
  • sql如何查出重复的数据
  • mysql 备份和恢复
  • 如何远程连接小米摄像头
  • centos7修改网络
  • 在linux操作系统中
  • win8硬盘重装
  • 怎么提升mac性能
  • windows7桌面回收站打不开
  • win7网络访问权限
  • eclipse cocos2dx Command line too long
  • jQuery插件安装教程
  • express的中间件
  • python中生成随机小数的函数
  • win安装nodejs
  • 安卓无法更新软件
  • jquery ztree选中节点颜色
  • js类库编写
  • python语言例子
  • 江宁市民之家上班时间?
  • 当前税务干部队伍不足
  • 村纪检书记主要工作
  • 增值税发票勾选是什么意思
  • 福建原盐和自然盐有什么区别
  • 固定资产原值包括哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设