React(三)

devtools/2025/2/12 10:06:26/

动态控制显示和css

javascript">import { useState } from "react";
import "./index.css";
const list = [{ id: 1, username: "aaName", content: "一条评论", ctime: "10-18 08:15" },{ id: 2, username: "bbName", content: "2条评论", ctime: "10-18 08:15" },{ id: 3, username: "ccName", content: "3条评论", ctime: "10-18 08:15" },{ id: 4, username: "ddName", content: "5条评论", ctime: "10-18 08:15" },
];
const user = { id: 2, username: "master" };
const HOT = [{ type: "hot", name: "最热" },{ type: "new", name: "最新" },
];
function App() {const [commitList, setCommitList] = useState(list);const [type, setType] = useState("hot");// 删除按钮function handleClick(id) {console.log(id);setCommitList(commitList.filter((item) => item.id !== id));}function changeType(id) {setType(id);console.log(type);}return (<div className="App"><div>{HOT.map((item) => (<spankey={item.type}onClick={() => changeType(item.type)}className={`${type === item.type && "active"}`}>{item.name}</span>))}</div><input></input><button>发送</button>{commitList.map((item) => (<div key={item.id} style={{ borderBottom: " solid 1px", width: "400px" }}><p> 用户{item.username}</p><p> 评论{item.content}</p><p> 时间{item.ctime}</p>{/* 只有满足时候才会显示删除按钮 */}{user.id == item.id && <button onClick={() => handleClick(item.id)}>删除按钮</button>}</div>))}</div>);
}export default App;

1、遍历展示评论列表

2、条件控制展示自己的删除按钮

3、点击删除,动态展示更新后数据(不重要 一般后端接口控制)

4、动态控制css样式

主要记住使用条件语句 和模板字符串

javascript"> {commitList.map((item) => (<div key={item.id}style={{ borderBottom: " solid 1px", width: "400px" }}
><p> 用户{item.username}</p><p> 评论{item.content}</p><p> 时间{item.ctime}</p>{/* 只有满足时候才会显示删除按钮 */}{user.id == item.id && <button onClick={() => handleClick(item.id)}>
删除按钮</button>}</div>))}

  className={`xxcss   xxx   active1   ${type === item.type && "active"}`}

优化

使用classname插件 GitHub - JedWatson/classnames: A simple javascript utility for conditionally joining classNames together

npm install classnames

使用

javascript">className={`${type === item.type && "active"}`}

javascript">优化

 className={classNames({active:type===item.type},'box')}


http://www.ppmy.cn/devtools/158175.html

相关文章

第36天:安全开发-JavaEE应用第三方组件Log4j日志FastJson序列化JNDI注入

时间轴&#xff1a; 演示案例&#xff1a; Java-三方组件-Log4J&JNDI Java-三方组件-FastJson&反射 Maven的下载及配置&#xff1a; IDEA配置Maven的超详细步骤_java_脚本之家 Java-三方组件-Log4J&JNDI JNDI 注入&#xff1a; ( 见图 ) Java Naming and Dire…

算法15(力扣347)——前k个高频元素

1、问题 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 2、示例 &#xff08;1&#xff09; 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] &#xff08;2&#xff09; 输入: nums [1], k 1 输出: [1…

https的论述

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是HTTP协议的安全版本&#xff0c;用于保护数据传输的安全性和完整性。在HTTPS中&#xff0c;通过使用SSL&#xff08;Secure Socket Layer&#xff09;或TLS&#xff08;Transport Layer Security&#xff09…

python2048游戏

实现了一个完整的2048游戏&#xff0c;并将其展示在一个图形化界面上。具体功能包括&#xff1a; 初始化游戏板&#xff1a;创建一个4x4的二维列表&#xff0c;表示游戏板&#xff0c;并在初始状态下随机放置两个数字&#xff08;通常是2或4&#xff09;。绘制游戏板&#xff…

8.flask+websocket

http是短连接&#xff0c;无状态的。 websocket是长连接&#xff0c;有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…

玩转工厂模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 什么是工厂模式?工厂方法模式适合应用场景实现方式工厂方法模式优缺点什么是工厂模式? 工厂方法模式是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。…

Visual Studio 使用 “Ctrl + /”键设置注释和取消注释

问题&#xff1a;在默认的Visual Studio中&#xff0c;选择单行代码后&#xff0c;按下Ctrl /键会将代码注释掉&#xff0c;但再次按下Ctrl /键时&#xff0c;会进行双重注释&#xff0c;这不是我们想要的。 实现效果&#xff1a;当按下Ctrl /键会将代码注释掉&#xff0c;…

嵌入式系统开发中的图形后台(graphical backend)是什么意思?

图形后台的概述 “图形后台”是指在计算机系统中负责管理和渲染图形界面&#xff08;GUI&#xff09;的程序或系统。 在嵌入式设备上&#xff0c;图形系统的选择通常包括以下几种主要类型&#xff1a; X11&#xff08;X Window System&#xff09;&#xff1a; 这是一个传统的…