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 语句:适合处理多个条件,进行不同内容的渲染。
目录
相关文章
|
7月前
|
JavaScript 前端开发 索引
「Vue3系列」Vue3 条件语句/循环语句
在 Vue 3 中,你可以使用条件语句来动态地控制模板中的渲染内容。Vue 提供了多种方式来实现条件渲染,包括 `v-if`、`v-else-if`、`v-else` 和 `v-show` 指令。
218 0
|
7月前
|
前端开发 JavaScript 开发者
React:JSX语法入门
React:JSX语法入门
101 0
|
4月前
|
XML JavaScript 前端开发
React Jsx语法入门
【8月更文挑战第13天】React Jsx语法入门
48 4
|
4月前
|
JavaScript 前端开发 程序员
Vue条件语句中v-if、v-else、v-else-if的用法
这篇文章详细介绍了Vue中`v-if`、`v-else`和`v-else-if`条件语句的用法,包括它们的正确使用方式、常见的错误以及如何使用`<template>`标签来同时切换多个元素的显示状态。
|
6月前
|
前端开发 JavaScript
react 逻辑 AND 运算符 (&&)
react 逻辑 AND 运算符 (&&)
|
XML 前端开发 JavaScript
说说react 中jsx语法糖的本质?
React 使用 JSX 来替代常规的JavaScript。 JSX 是按照 XML 语法规范 的 JavaScript 语法扩展。 JSX 语法的本质:并不是直接把 JSX 渲染到页面上,而是内部先转换成了 createElement 形式,再渲染的。
|
XML JavaScript 前端开发
react总结之jsx是什么,jsx语法规则
react总结之jsx是什么,jsx语法规则
|
7月前
|
前端开发 JavaScript
react JSX是什么,作用是什么
react JSX是什么,作用是什么
77 0
|
7月前
|
前端开发 JavaScript 开发者
React中JSX语法入门
React中JSX语法入门
|
7月前
|
前端开发 JavaScript
【React学习】—jsx语法规则(三)
【React学习】—jsx语法规则(三)