当前位置:   article > 正文

react 的条件渲染

react 的条件渲染

##### 使用 if/else 语句

可以在 JSX 中使用普通的 JavaScript `if`/`else` 语句来进行条件渲染。

  1. import React from 'react';
  2. function ConditionalRender(props) {
  3.   const isLoggedIn = props.isLoggedIn;
  4.   if (isLoggedIn) {
  5.     return <UserGreeting />;
  6.   } else {
  7.     return <GuestGreeting />;
  8.   }
  9. }
  10. function UserGreeting() {
  11.   return <h1>Welcome back!</h1>;
  12. }
  13. function GuestGreeting() {
  14.   return <h1>Please sign up.</h1>;
  15. }
  16. export default ConditionalRender;

##### 使用三元运算符

另一种常见的方式是使用 JavaScript 中的三元运算符来进行条件渲染。

  1. import React from 'react';
  2. function ConditionalRender(props) {
  3.   const isLoggedIn = props.isLoggedIn;
  4.   return (
  5.     <div>
  6.       {isLoggedIn ? (
  7.         <UserGreeting />
  8.       ) : (
  9.         <GuestGreeting />
  10.       )}
  11.     </div>
  12.   );
  13. }
  14. function UserGreeting() {
  15.   return <h1>Welcome back!</h1>;
  16. }
  17. function GuestGreeting() {
  18.   return <h1>Please sign up.</h1>;
  19. }
  20. export default ConditionalRender;

 使用逻辑 && 运算符

在 React 中,还可以使用逻辑 `&&` 运算符进行简单的条件渲染。例如:

  1. import React from 'react';
  2. function ConditionalRender(props) {
  3.   const isLoggedIn = props.isLoggedIn;
  4.   return (
  5.     <div>
  6.       {isLoggedIn && <UserGreeting />}
  7.       {!isLoggedIn && <GuestGreeting />}
  8.     </div>
  9.   );
  10. }
  11. function UserGreeting() {
  12.   return <h1>Welcome back!</h1>;
  13. }
  14. function GuestGreeting() {
  15.   return <h1>Please sign up.</h1>;
  16. }
  17. export default ConditionalRender;

##### 使用条件运算符

有时需要更复杂的条件逻辑,可以使用条件运算符 (`? :`):

  1. import React from 'react';
  2. function ConditionalRender(props) {
  3.   const isLoggedIn = props.isLoggedIn;
  4.   const isAdmin = props.isAdmin;
  5.   return (
  6.     <div>
  7.       {isLoggedIn ? (
  8.         isAdmin ? (
  9.           <h1>Welcome admin!</h1>
  10.         ) : (
  11.           <h1>欢迎 用户</h1>
  12.         )
  13.       ) : (
  14.         <h1>请先登录</h1>
  15.       )}
  16.     </div>
  17.   );
  18. }
  19. export default ConditionalRender;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/828909
推荐阅读
相关标签
  

闽ICP备14008679号