首页 > 其他分享 >js:React中使用classnames实现按照条件将类名连接起来

js:React中使用classnames实现按照条件将类名连接起来

时间:2023-11-14 12:34:07浏览次数:29  
标签:bar App classNames js React classnames foo true


参考文档

  1. https://www.npmjs.com/package/classnames
  2. https://github.com/JedWatson/classnames

安装

npm install classnames

示例

import classNames from "classnames";

// 字符串合并
console.log(classNames("foo", "bar")); // foo bar

// 对象合并
console.log(classNames({ foo: true, bar: false })); // foo

// 动态名称
let buttonType = "primary";
console.log(classNames({ [`btn-${buttonType}`]: true })); // btn-primary

Vue中的类名可以这么写

<div :class="{
    'foo': true,
    'bar': false
}">

React中可以借助classnames实现

App.css

.foo {
  background-color: green;
}

.bar {
  color: red;
}

App.jsx

import React from "react";
import classNames from "classnames";
import "./App.css";

export default function App() {
  const boxClasses = classNames({
    bar: true,
    foo: true,
  });

  return <div className={boxClasses}>App</div>;
}

页面渲染的元素

<div class="bar foo">App</div>

js:React中使用classnames实现按照条件将类名连接起来_css


标签:bar,App,classNames,js,React,classnames,foo,true
From: https://blog.51cto.com/mouday/8365994

相关文章

  • js:可选链运算符(?.)和空值合并运算符(??)
    文档:可选链运算符(?.)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Optional_chaining空值合并运算符(??)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing目录1、可选链运算符(?.)2、空值合并运算......
  • 基于React使用swiperjs实现竖向滚动自动轮播
    很多文章,都只提供了js部分,包括官方的文档也只有js部分,如果css设置不正确,会导致轮播图不自动播放。使用的swiper版本:v11.0.3文档https://swiperjs.com/get-startedhttps://swiperjs.com/react实现效果使用vite创建react应用pnpmcreatevitereact-app--templatereact完整依赖pac......
  • react| 封装TimeLine组件
    功能支持居中/局左/居右布局可自定义线条颜色默认情况下图标是圆形,可自定义圆形颜色和大小,同时也可以自定义图标支持自定义内容效果constdata=[{"title":"2022-12-0512:03:40","des":"茶陵县实时广播防火宣传"},...]<TimeLineda......
  • js运行机制
    区分进程和线程线程和进程区分不清,是很多新手都会犯的错误,没有关系。这很正常。先看看下面这个形象的比喻:进程是一个工厂,工厂有它的独立资源工厂之间相互独立线程是工厂中的工人,多个工人协作完成任务工厂内有一个或多个工人工人之间共享空间再完善完善概念:工......
  • vuejs3.0 从入门到精通——Pinia——Store 是什么?
    Pinia——Store是什么?https://pinia.vuejs.org/zh/getting-started.html#what-is-a-store一、Store是什么? Store(如Pinia)是一个保存状态和业务逻辑的实体,它并不与你的组件树绑定。换句话说,它承载着全局状态。它有点像一个永远存在的组件,每个组件都可以读取和写入它。......
  • js实现大文件分片上传
    简单的实现一个分片上传//设置分片大小(大小根据需求调整)constCHUNK_SIZE=1024*1024;//1MB//选择文件并切割成分片constfileInput=document.getElementById('file-input');constchunks=[];letcurrentChunkIndex=0;fileInput.addEventListener('change',hand......
  • js---判断用户是否在浏览当前页面
    最近遇到一个需求,需要判断用户是否在当前页面,只有用户在当前页面才可以播放视频,如果切换到其他窗口就要将视频暂停掉,避免学生刷课程,以下是具体的代码:<scripttype="text/javascript"src="js/jquery-1.8.3.min.js"></script><scripttype="text/javascript">varindex=0,ti......
  • 来来来,一文让你读懂Cocos Creator如何读写JSON文件
    前言在游戏开发过程中,读取配置文件是必不可少的,而使用JSON做配置文件又比较常见,本文重点给大家讲述如何在CocosCreator开发中读取和解析JSON数据文件以及如何写JSON文件。一、JSON简介1.什么是JSONJSON的英文全称是JavaScriptObjectNotation,即JavaScript对象表示法。2.J......
  • Python Object of type float32 is not JSON serializable
    前言使用json.dumps(result)对数据转JSON数据出现错误:TypeError:Objectoftypefloat32isnotJSONserializable数据中存在的float32数据是numpy格式的数据,Python内置的float类型可以写入JSON中,但是numpy的float32类型数据不能写入JSON,所以应将numpy.flo......
  • utils.js
    //获取连接参数值getUrlParams(name){varreg=newRegExp('(^|&)'+name+'=([^&]*)(&|$)','i')varr=window.location.search.substr(1).match(reg)if(r!=null){retur......