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 语句:适合处理多个条件,进行不同内容的渲染。
目录
相关文章
|
6月前
|
JavaScript 前端开发 索引
「Vue3系列」Vue3 条件语句/循环语句
在 Vue 3 中,你可以使用条件语句来动态地控制模板中的渲染内容。Vue 提供了多种方式来实现条件渲染,包括 `v-if`、`v-else-if`、`v-else` 和 `v-show` 指令。
152 0
|
6月前
Vue3中条件语句的使用方法和相关技巧
Vue3中条件语句的使用方法和相关技巧
153 1
Vue3中条件语句的使用方法和相关技巧
react-withRouter 用法
react-withRouter 用法
122 0
|
3月前
|
JavaScript 前端开发 程序员
Vue条件语句中v-if、v-else、v-else-if的用法
这篇文章详细介绍了Vue中`v-if`、`v-else`和`v-else-if`条件语句的用法,包括它们的正确使用方式、常见的错误以及如何使用`<template>`标签来同时切换多个元素的显示状态。
|
3月前
|
XML 前端开发 JavaScript
React——JSX语法【三】
React——JSX语法【三】
28 0
|
5月前
|
前端开发 JavaScript
react 逻辑 AND 运算符 (&&)
react 逻辑 AND 运算符 (&&)
|
6月前
|
JavaScript
03. Vue3 中的条件判断与循环
03. Vue3 中的条件判断与循环
75 0
|
6月前
|
存储 JavaScript 前端开发
原生js vue react通用的递归函数
原生js vue react通用的递归函数
45 0
|
存储 前端开发 JavaScript
React | React的JSX语法(二)
React | React的JSX语法(二)
React | React的JSX语法(二)
|
XML 前端开发 JavaScript
React | React的JSX语法(一)
React | React的JSX语法 React | React的JSX语法(一)