React 条件判断

简介: 10月更文挑战第11天

在 React 中,可以通过 JavaScript 的条件语句来动态渲染组件或元素。

以下是几种常用的在 React 中处理条件渲染的方法:

1. 使用 if 语句

在 render 方法或函数组件的返回值中使用 if 语句来决定渲染内容。

实例

import React from 'react';

import ReactDOM from 'react-dom/client';


class MyComponent extends React.Component {

 render() {

   const isLoggedIn = this.props.isLoggedIn;

   let content;


   if (isLoggedIn) {

     content = <h1>Welcome back!</h1>;

   } else {

     content = <h1>Please sign up.</h1>;

   }


   return (

     <div>

       {content}

     </div>

   );

 }

}


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent isLoggedIn={true} />);

2. 使用三元运算符

在 JSX 中,可以使用三元运算符进行简洁的条件渲染。

实例

import React from 'react';

import ReactDOM from 'react-dom/client';


const MyComponent = (props) => {

 const isLoggedIn = props.isLoggedIn;


 return (

   <div>

     {isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign up.</h1>}

   </div>

 );

};


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent isLoggedIn={true} />);

3. 使用逻辑与 (&&) 运算符

在 JSX 中,可以使用逻辑与运算符来进行条件渲染。如果条件为 true,则渲染后面的元素。

实例

import React from 'react';

import ReactDOM from 'react-dom/client';


const MyComponent = (props) => {

 const isLoggedIn = props.isLoggedIn;


 return (

   <div>

     {isLoggedIn && <h1>Welcome back!</h1>}

     {!isLoggedIn && <h1>Please sign up.</h1>}

   </div>

 );

};


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent isLoggedIn={true} />);

4. 使用 switch 语句

在需要处理多个条件时,可以在 render 方法中使用 switch 语句。

实例

import React from 'react';

import ReactDOM from 'react-dom/client';


class MyComponent extends React.Component {

 render() {

   const userRole = this.props.userRole;

   let content;


   switch (userRole) {

     case 'admin':

       content = <h1>Welcome, Admin!</h1>;

       break;

     case 'user':

       content = <h1>Welcome, User!</h1>;

       break;

     case 'guest':

       content = <h1>Welcome, Guest!</h1>;

       break;

     default:

       content = <h1>Who are you?</h1>;

   }


   return (

     <div>

       {content}

     </div>

   );

 }

}


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent userRole="admin" />);

小结

  • if 语句:适合在 render 方法或函数组件的返回值中使用来决定渲染内容。
  • 三元运算符:适合在 JSX 中进行简洁的条件渲染。
  • 逻辑与 (&&) 运算符:适合在 JSX 中条件渲染,当条件为 true 时渲染元素。
  • switch 语句:适合处理多个条件,进行不同内容的渲染。
目录
相关文章
|
存储 前端开发 JavaScript
react怎么实现跨页面传参
react怎么实现跨页面传参
394 2
postcss-px-to-viewport-8-plugin 适配
postcss-px-to-viewport-8-plugin 适配
1849 0
|
3月前
|
人工智能 城市大脑 自然语言处理
一文看懂:信息化、数字化、智能化、智慧化、数智化
本文解析了企业在数字化转型中常见的五个阶段:信息化、数字化、智能化、智慧化与数智化。文章指出,这些阶段并非简单替代关系,而是企业利用数据与技术解决问题的“能力升级路线”。重点强调:判断所处阶段不应只看技术应用,而应关注其是否解决了实际业务问题。
一文看懂:信息化、数字化、智能化、智慧化、数智化
|
前端开发
HTML中的pre标签表示空格或换行
HTML中的pre标签表示空格或换行
576 0
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的图像识别技术:从理论到实践
【9月更文挑战第17天】在深度学习的浪潮中,图像识别技术以其惊人的准确率和广泛的应用前景,成为了科技领域的一颗耀眼之星。本文将通过浅显易懂的语言,带你走进图像识别的世界,探索其背后的原理,并通过实际代码示例,展示如何运用深度学习框架实现简单的图像分类任务。无论你是初学者还是有一定经验的开发者,都能从中获益。
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
搜索推荐 UED
【Prompt Engineering:自我一致性、生成知识提示、链式提示】
自我一致性是提示工程技术之一,旨在改进链式思维提示中的解码方法。通过少样本CoT采样多个推理路径并选择最一致的答案,有助于提升涉及算术和常识推理任务的性能。例如,在解决年龄相关问题时,通过多次采样并挑选多数答案来提高准确性。此外,生成知识提示技术可预先生成相关信息辅助模型做出更准确预测,进一步优化模型表现。链式提示则通过将复杂任务分解为多个子任务来逐步处理,从而提高模型的透明度和可靠性,便于定位和改进问题。
588 0
【Prompt Engineering:自我一致性、生成知识提示、链式提示】
|
安全 网络安全 网络协议
精选30道“渗透测试工程师”面试题
渗透测试 信息收集 网络安全 web安全
1278 3
|
弹性计算 固态存储 大数据
阿里云服务器租用一年多少钱?2024年最新版阿里云服务器租用价格表
阿里云服务器价格亲民,2024年最新优惠中,轻量应用服务器2核2G3M带宽仅82元/年,折合6.8元/月;ECS经济型e实例2核2G3M带宽99元/年,新老用户同享;2核4G5M带宽ECS u1实例199元/年。此外,4核16G10M带宽服务器70元/月起,8核32G10M带宽160元/月起。另有GPU服务器优惠,如gn6v最高配置月费4685.20元。系统盘提供高效云盘、SSD云盘和ESSD云盘等多种选择。续费优惠方面,续费一年享7.5折,最长可达3折。详情请参考官方页面获取最准确的报价与活动信息。