Conditional Rendering 条件渲染

最后更新:2026-10-28

Conditional Rendering 条件渲染

React 里没有 if 标签:条件渲染就是把 if、三元、&& 等普通 JS 逻辑写进 JSX,根据状态决定渲染哪一块 UI 或返回 null。同一组件因此能在不同情况下呈现完全不同的界面。

分组渲染与状态
类型模式
引入版本React 最早版本

ℹ️ 说明 编辑器将 JSX 转译为 JavaScript 后在沙箱中渲染真实界面;组件自动挂载,无需手写 render 调用。

📝 语法

{isLoggedIn ? <UserPanel /> : <LoginButton />}  // 三元:二选一
{unread > 0 && <Badge count={unread} />}        // &&:渲染或不渲染
if (!ok) return null                            // 提前返回:整块不渲染

返回值:无返回值,作为编码约定/心智模型使用。

▶ 示例

示例可直接运行:展开后自动渲染,编辑代码即时生效。

输出结果:

初始显示「请先登录」和登录按钮;点登录后出现欢迎语与「你有 3 条未读消息」;再点「全部已读」,未读提示消失并显示「消息都看完啦」。

💡 要点

⚠️ 注意 && 左侧是数字 0 时会把「0」渲染到页面上(0 && ... 返回 0),请先写成 unread > 0 &&。
💡 提示 分支多且复杂时,把判断逻辑提成函数或提前 return,别把 JSX 塞成一坨嵌套三元。
ℹ️ 说明 返回 null 表示组件什么都不渲染,常用于「权限不足时隐藏整个组件」。
更多案例整理中,敬请期待。

📚 相关教程

❓ 常见问题

Q React 中条件渲染有哪几种写法?
A 常用四种:三元运算符(二选一)、&&(要么渲染要么不渲染)、提前 return、以及把分支抽成变量或函数再嵌入 JSX。
Q && 渲染出数字 0 怎么办?
A 因为 0 && x 的结果是 0 且会被渲染。把条件改成比较表达式 count > 0 && ...,或用三元写法规避。
Q if-else 能直接写在 JSX 里吗?
A 不能,花括号里只能放表达式。可以在 return 前用 if 计算变量,或在 JSX 里用三元运算符实现分支。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏