当前位置: 首页 > news >正文

React入门学习——指北指南(第五节)

React 交互性:过滤与条件渲染

在前文我们学习了 React 中事件处理和状态管理的基础。本节将聚焦两个重要的进阶技巧 ——条件渲染(根据状态动态显示不同 UI)和列表过滤(根据条件筛选数据),这两者是构建交互式应用的核心能力,能让界面根据用户操作呈现更智能的响应。

条件渲染:根据状态动态显示 UI

条件渲染指的是根据组件的状态(或 props)决定是否渲染某个元素,或渲染不同的元素。这就像现实中的 “根据天气决定穿什么衣服”—— 状态不同,结果不同。

条件渲染的常用方法

React 中实现条件渲染的方式灵活多样,可根据场景选择最合适的方法。

1. if/else 语句(适合复杂条件)

在组件的渲染逻辑中使用if/else,根据条件返回不同的 JSX。

import { useState } from 'react';function UserGreeting() {&#x20; return \<h1>欢迎回来!\</h1>;}function GuestGreeting() {&#x20; return \<h1>请先登录。\</h1>;}function Greeting() {&#x20; // 根据isLoggedIn状态决定渲染哪个组件&#x20; const \[isLoggedIn, setIsLoggedIn] = useState(false);&#x20; let greeting;&#x20; if (isLoggedIn) {&#x20;   greeting = \<UserGreeting />;&#x20; } else {&#x20;   greeting = \<GuestGreeting />;&#x20; }&#x20; return (&#x20;   \<div>&#x20;     {greeting}&#x20;     \<button onClick={() => setIsLoggedIn(!isLoggedIn)}>&#x20;       {isLoggedIn ? '退出' : '登录'}&#x20;     \</button>&#x20;   \</div>&#x20; );}
2. 逻辑与运算符(&&,适合简单显示 / 隐藏)

当需要 “满足条件时渲染某个元素,不满足时不渲染”,可使用&&运算符 —— 左侧条件为true时,渲染右侧元素;否则不渲染。

import { useState } from 'react';function Notification() {&#x20; const \[hasUnread, setHasUnread] = useState(true);&#x20; return (&#x20;   \<div>&#x20;     \<h1>消息中心\</h1>&#x20;     {/\* 有未读消息时显示提示 \*/}&#x20;     {hasUnread && \<p>您有3条未读消息!\</p>}&#x20;     \<button onClick={() => setHasUnread(false)}>标记为已读\</button>&#x20;   \<
http://www.dtcms.com/a/300189.html

相关文章:

  • java集合框架面试点(2)
  • [2025CVPR-图象合成、生成方向]ODA-GAN:由弱监督学习辅助的正交解耦比对GAN 虚拟免疫组织化学染色
  • 《每日AI-人工智能-编程日报》--2025年7月26日
  • 四大主流AI Agent框架选型梳理
  • 零基础学习性能测试第三章:jmeter性能组件应用(事件,并发,定时器)
  • DriverManager在rt.jar里,凭什么能加载到classpath下的驱动?
  • CPA战略-4.1-公司战略与组织结构
  • 人形机器人_双足行走动力学:弹性势能存储和步态能量回收
  • 聚类里面的一些相关概念介绍阐述
  • 杰理蓝牙耳机开发--三轴加速度传感器与IIC通信
  • Python:PyAutoGUI模拟鼠标移动点击事件,程序运行后,如何获取鼠标控制权了?
  • Redis的数据淘汰策略是什么?有哪些?
  • 昇思学习营-【模型开发与适配】学习心得_20250724
  • window上建立git远程仓库
  • Sklearn 机器学习 数值指标 entropy熵函数
  • Linux网络-------1.socket编程基础---(TCP-socket)
  • base64魔改算法 | jsvmp日志分析并还原
  • 在 Dell PowerEdge T440 上通过 iDRAC9 安装 Proxmox VE
  • Flutter开发实战之网络请求与数据处理
  • bmp280的压力数据采集(i2c设备驱动+设备树编写)
  • ACO-OFDM 的**频带利用率**(单位:bit/s/Hz)计算公式
  • 建筑施工场景下漏检率↓76%!陌讯多模态融合算法在工程安全监控的落地实践
  • OpHReda精准预测酶最佳PH
  • 进制间的映射关系
  • 2025牛客暑期多校第4场——G
  • Polyhedral Approaches in Combinatorial Optimization组合优化中的多面体方法(下)
  • Java实现大根堆与小根堆详解
  • 每日面试题15:如何解决堆溢出?
  • 如何检查服务器数据盘是否挂载成功?
  • Android-三种持久化方式详解