使用 if/else 语句
可以在 JSX 中使用普通的 JavaScript `if`/`else` 语句来进行条件渲染。
javascript
import React from 'react';
function ConditionalRender(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <UserGreeting />;
} else {
return <GuestGreeting />;
}
}
function UserGreeting() {
return <h1>Welcome back!</h1>;
}
function GuestGreeting() {
return <h1>Please sign up.</h1>;
}
export default ConditionalRender;
使用三元运算符
另一种常见的方式是使用 JavaScript 中的三元运算符来进行条件渲染。
javascript
import React from 'react';
function ConditionalRender(props) {
const isLoggedIn = props.isLoggedIn;
return (
<div>
{isLoggedIn ? (
<UserGreeting />
) : (
<GuestGreeting />
)}
</div>
);
}
function UserGreeting() {
return <h1>Welcome back!</h1>;
}
function GuestGreeting() {
return <h1>Please sign up.</h1>;
}
export default ConditionalRender;
使用逻辑 && 运算符
在 React 中,还可以使用逻辑 `&&` 运算符进行简单的条件渲染。例如:
javascript
import React from 'react';
function ConditionalRender(props) {
const isLoggedIn = props.isLoggedIn;
return (
<div>
{isLoggedIn && <UserGreeting />}
{!isLoggedIn && <GuestGreeting />}
</div>
);
}
function UserGreeting() {
return <h1>Welcome back!</h1>;
}
function GuestGreeting() {
return <h1>Please sign up.</h1>;
}
export default ConditionalRender;
使用条件运算符
有时需要更复杂的条件逻辑,可以使用条件运算符 (`? :`):
javascript
import React from 'react';
function ConditionalRender(props) {
const isLoggedIn = props.isLoggedIn;
const isAdmin = props.isAdmin;
return (
<div>
{isLoggedIn ? (
isAdmin ? (
<h1>Welcome admin!</h1>
) : (
<h1>欢迎 用户</h1>
)
) : (
<h1>请先登录</h1>
)}
</div>
);
}
export default ConditionalRender;