使用三元表达式实现
import React from 'react';
function App() {
const isLoggedIn = true;
const userName = 'JohnDoe';
return (
<div>
{isLoggedIn ? (
<div>
<p>Welcome, {userName}</p>
<button>Logout</button>
</div>
) : (
<button>Login</button>
)}
</div>
);
}
export default App;
方法及优缺点
三元表达式
- 优点:
- 语法简洁,适用于简单的条件渲染场景,代码可读性较高,能直观地表达根据条件进行不同渲染的逻辑。
- 缺点:
- 当条件逻辑变得复杂,嵌套多层三元表达式时,代码可读性会急剧下降,变得难以维护。
if - else
- 优点:
- 逻辑清晰,对于复杂的条件判断和多分支情况,if - else 语句更易于理解和编写,代码结构更规整。
- 缺点:
- 在 JSX 中使用 if - else 语句,由于 JSX 本质是 JavaScript 表达式,不能直接在顶层使用 if - else,通常需要封装在函数中,相比三元表达式,代码量会有所增加。
逻辑与运算符
import React from 'react';
function App() {
const isLoggedIn = true;
const userName = 'JohnDoe';
return (
<div>
{isLoggedIn && (
<div>
<p>Welcome, {userName}</p>
<button>Logout</button>
</div>
)}
{!isLoggedIn && <button>Login</button>}
</div>
);
}
export default App;
- 优点:
- 简洁明了,特别适用于只需要在条件为真时渲染某些内容的场景,对于显示或隐藏元素很方便。
- 缺点:
- 只能处理条件为真时的渲染,对于条件为假需要渲染不同内容的情况,就需要额外的逻辑与运算符组合,增加了代码量和复杂度,且对于复杂逻辑可读性不如 if - else。