三、大括号语法

1. 放在标签之间(渲染内容)

用于在页面上展示动态的文本或嵌套的组件。

用法 示例 说明
放变量 <h1>{userName}</h1> 直接渲染变量值
放表达式 <p>{100 + 50}</p> 先计算表达式,再渲染结果
放函数调用 <span>{getFullName()}</span> 渲染函数的返回值
放条件判断 <div>{isLoggedIn ? '欢迎' : '请登录'}</div> 使用三元运算符或 &&
放数组(列表渲染) <ul>{list.map(item => <li>{item.name}</li>)}</ul> 遍历数组生成列表

2. 放在标签属性中(动态传值)

用于动态给组件或 HTML 标签传递属性(除了字符串字面量,其他都必须用大括号)。

  • 动态绑定变量<img src={userAvatar} />
  • 动态绑定布尔值<button disabled={isSubmitting}>提交</button>
  • 动态绑定事件<button onClick={handleClick}>点击</button>
  • 动态绑定对象(内联样式)<div style={``{ color: 'red' }}>文本</div>(注意这里是双大括号)
  • 传递子组件<Layout header={<Header />} />

3. 作为对象字面量的一部分

当属性需要接收一个对象时,外层 {} 表示这是 JS 代码,内层 {} 表示这是一个 JS 对象。

  • 内联样式<div style={``{ fontSize: '16px', marginTop: '10px' }} />
  • 传递复杂配置<Chart data={``{ labels: ['A', 'B'], values: [1, 2] }} />

二、使用误区

大括号里只能放能「算出一个结果」的表达式,不能放用来控制流程的语句。

  • ❌ 不能放 if...else{if (a > b) return '大'}(错误!)
  • ❌ 不能放 for / while 循环:{for(let i=0; i<10; i++) {}}(错误!)
  • ❌ 不能放变量声明 var / let / const{const a = 1}(错误!)
相关推荐
weixin_493503674 小时前
Vue3 前端生成 PDF:会员证书与活动签到表的三种打印方案与踩坑记录
前端·pdf·状态模式
Java陈序员7 小时前
轻量运维面板!一款现代化的服务器控制面板工具!
运维·服务器·python·react.js·github
尾善爱看海7 小时前
前端算法与手写题集
前端·算法
徐小夕7 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端
萧鼎9 小时前
Python 高性能Web框架神器 FastAPI:自动生成API文、基于Pydant、异步请求处理全搞定
前端·python·fastapi
IT_陈寒9 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
计算机魔术师10 小时前
5000亿估值冲刺科创板,DeepSeek 为何急着上市?
前端
我血条子呢10 小时前
前端解析word方案
前端·word
kyriewen10 小时前
我用 AI 写完一个需求后才发现,最难的不是 prompt,而是验收
前端·程序员·ai编程
申行10 小时前
Vue 3 + DYMO Connect Framework 实战:从标签模板到打印服务的完整实现
前端